時間有限,簡單記一些常用的,麻煩的不寫了

定義變量:可以連續(xù)定義,也可以單個定義

var a int    int類型

var a="ds"   默認string類型

a:="string"  :=前面不可以有var

上面三種屬于等價的

 

連續(xù)定義

var x1,x2,x3 int =1,2,3

name1,name2,name3:="mu","bai","xu"

基本數(shù)據類型

int int16,int32,int64  double float 32,64 complex具體含義百度

 

循環(huán)

for init;condition;desc/incr{\

}

上面這種和c++的for循環(huán)一樣,只不過沒括號

還有一種類似于while的

for condition{

}

eg: condition:a<b  ||a>b

無限循環(huán)

for true{

}

 

switch:

和c++的主要區(qū)別就是沒有break

type-switch

Type Switch

switch 語句還可以被用于 type-switch 來判斷某個 interface 變量中實際存儲的變量類型。

Type Switch 語法格式如下:

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

switch x.(type){    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定義任意個數(shù)的case */
    default: /* 可選 */
       statement(s);
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

package main

import "fmt"func main() {   var x interface{}     
   switch i := x.(type) {      case nil:      
         fmt.Printf(" x 的類型 :%T",i)                
      case int:      
         fmt.Printf("x 是 int 型")                       
      case float64:
         fmt.Printf("x 是 float64 型")           
      case func(int) float64:
         fmt.Printf("x 是 func(int) 型")                      
      case bool, string:
         fmt.Printf("x 是 bool 或 string 型" )       
      default:
         fmt.Printf("未知型")     
   }   
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

select 語句類似于 switch 語句,但是select會隨機執(zhí)行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。

 

 

以下描述了 select 語句的語法:

 

    • 每個case都必須是一個通信

    • 所有channel表達式都會被求值

    • 所有被發(fā)送的表達式都會被求值

    • 如果任意某個通信可以進行,它就執(zhí)行;其他被忽略。

    • 如果有多個case都可以運行,Select會隨機公平地選出一個執(zhí)行。其他不會執(zhí)行。 
      否則:

      1. 如果有default子句,則執(zhí)行該語句。

      2. 如果沒有default字句,select將阻塞,直到某個通信可以運行;Go不會重新對channel或值進行求值

 

 

條件:

break,contonie,goto都是和c/里面的類似

 

 

function:

函數(shù)的返回值可以有一個二兩或者多個,中間用逗號隔開就可以,return x,y,z

return的值接的時候就是

func function(a,b,c int) int{

  return a,b,c

}

x,y,z=function(a,b,c)

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

package main
import "fmt"func max(a,b int) int{    var result int
    if a>b{
        result=a
    }else{
        result=b
    }    
    return result
}

func main(){    var re int
    
    re=max(14,6)
    fmt.Println(re)
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

 函數(shù)可以作為值

  getSquareRoot := func(x float64) float64 {      return math.Sqrt(x)
   }   /* 使用函數(shù) */
   fmt.Println(getSquareRoot(9))

 

 

內置方法

get()  len()都屬于circle的內置方法

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

package main
import (    "fmt")
type circle struct{
         x,y int}
func main(){    var c circle
    c.x=4
    c.y=51
    var ret int
    ret=c.get()
    fmt.Println(ret)
    ret=c.len()
    fmt.Println(ret)
}

func (c circle) len() int {    return c.x+c.y
}


func (c circle) get() int{      return c.x * c.y
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

 

range:

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

package main
import "fmt"func main() {    //這是我們使用range去求一個slice的和。使用數(shù)組跟這個很類似
    nums := []int{2, 3, 4}
    sum := 0
    for i, num := range nums {
        fmt.Println(i)
        sum += num
    }
    fmt.Println("sum:", sum)    //在數(shù)組上使用range將傳入index和值兩個變量。    //上面那個例子我們不需要使用該元素的序號,    //所以我們使用空白符"_"省略了。有時侯我們確實需要知道它的索引。
    for i, num := range nums {        if num == 3 {
            fmt.Println("index:", i)
        }
    }    //range也可以用在map的鍵值對上。
    kvs := map[int]string{1: "apple", 2: "banana"}    for k, v := range kvs {
        fmt.Printf("%d -> %s\n", k, v)
    }    //range也可以用來枚舉Unicode字符串。第一個參數(shù)是字符的索引,第二個是字符(Unicode的值)本身。
    for i, c := range "go" {
        fmt.Println(i, c)
    }
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

map

使用range map的時候可以返回兩個值,第一個key第二個value

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

package main

import "fmt"func main() {   var Map map[string]string
   /* 創(chuàng)建集合 */
    Map = make(map[string]string)
   
   Map["France"] = "Paris"
   Map["Italy"] = "Rome"
   Map["Japan"] = "Tokyo"
   Map["India"] = "New Delhi"
   
   
   for country ,value:= range Map {
   
       fmt.Println(country,value)
   }
   
 
   captial, ok := Map["United States"]   /* 如果 ok 是 true, 則存在,否則不存在 */
   if(ok){
      fmt.Println("Capital of United States is", captial)  
   }else {
      fmt.Println("Capital of United States is not present") 
   }
}

seo優(yōu)化培訓,網絡推廣培訓,網絡營銷培訓,SEM培訓,網絡優(yōu)化,在線營銷培訓

 delete(map,"France");
通過delete我們可以刪除指定map的key的value

http://www.cnblogs.com/13224ACMer/p/7026473.html