標籤:env highlight 學習筆記 type *** erro 運行 常量 package
a、為何學習GO語言?
從個人角度來看,第一是被GO語言傳說中的那樣超高的開發效率和運行效率所吸引;第二是GO語言在語言層面支援並發,這在現在的編程業務中是很方便的;第三是由於前兩點,我覺得以後GO會火起來;最後一點,做技術嘛,跟著微軟或者Google總會是有肉吃的^_^!
b、第一個GO程式
根據國際慣例,學習一門語言,總會以一個Hello World開始,同樣,看第一個GO程式來感受一下GO的世界
package mainimport "fmt"func main(){ fmt.Println("Hello World!")}
package---包聲明,表示這段代碼屬於哪個包
import---匯入包,匯入fmt是因為需要使用fmt包中的Println函數//不能匯入代碼中沒有用到的包,編譯會報錯
/******************開始語言*********************/
一、順序編程
1、變數
a、聲明:
引入關鍵字 var , 類型資訊在變數名之後
var a int
var v2 string
var v3 [10]int //數組
/*多個變數一起聲明*/
var (
v1 int
v2 string
)
b、初始化
var v1 int = 10var v2 = 10 //可以自動推導類型v3 := 10 //v3不能是已經聲明過的變數
c、賦值
var v4 intv4 = 10
/*多重賦值*/
a , b = 2 , 3
i , j = j , i
d、匿名變數
Go語言支援多傳回值和匿名變數,由於函數可以多傳回值,在接收的時候可以選擇性的接收
func getName()(firstName , lastName , nickName){ return "zhangsan" , "lisi" , "wuhaha"}_ , _ , nickName := getName()
2、常量
a、字面常量-----程式中硬式編碼常量(無類型)
-12 3.14159265358979325846//浮點型的常量 3.2 + 12i //複數型的常量 true //布爾型的常量 "foo" //字串型的常量
b、常量定義
關鍵字 const
const Pi float64 = 3.14159265358979323846const ( size int64 = 1024 eof = -1)const mask = 1 << 3 //編譯期運算的常量運算式
常量賦值是一個編譯期行為,所以右值不可以是任何需要運行期才能得出結果的運算式
如下錯誤栗子:
const errooooor = os.GetEnv("HOME")//os.GetEnv()要在運行期才能得出結果
c、預定義常量
true , false , iota
iota---可被編譯器修改的常量,每const出現一次,iota被重設為0,在下一個const出現之前,沒出現一次iota,iota代表的數字+1
const ( c0 = iota //co == 0 c1 = iota //c1 == 1 c2 = iota //c2 == 2 )const ( c0 = 1 << iota //c0 == 1 c1 = 1 << iota //c1 == 2 c2 = 1 << iota //c2 == 4 )
d、枚舉---定義一組常量
const (
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
numberOfDays // 這個常量沒有匯出
)
同Go語言的其他符號( symbol)一樣,以大寫字母開頭的常量在包外可見。以上例子中numberOfDays為包內私人,其他符號則可被其他包訪問。
【GO】GO語言學習筆記一