-
gofmt:統一的代碼風格
查看全部 -
內置runtime,性能監控和GC
查看全部 -
?? iota只能在常量定義時候使用,不可以在別的函數里使用
? ?
?? iota跳值使用法:
?? 原來的定義:
??????? const(
????? a=iota//a=0
?? ?? b=iota//b=1
?? ?? c=iota//c=2
?? ?? )
?? ? ?
?? ?? 如果想將c變為3,可以用"_"(變量聲明的時候它相當于垃圾桶,常量iota使用的時候它具有使iota加1的功能)
?? ? ?
?? ???? const(
????? a=iota//a=0
?? ?? b=iota//b=1
?? ?? _
?? ?? c=iota//c=3
?? ?? )
?? ? ?
?? ? ?
?? ?? 插隊使用法:
?? ? ??? ?const(
????? a=iota//a=0
?? ?? b=2
?? ?? c=iota//c=1
?? ?? )
?? ?? 就是說不連續用iota賦值,中間插入另外的常量,這就是插隊使用法
?? ? ?
?? ?? 表達式隱式使用法:
?? ???? const(
????? a=iota*2//a=0
?? ?? b?????? //b自動被賦值為iota*2==1*2==2
?? ?? c?????? //b自動被賦值為iota*2==2*2==4
?? ?? )
?? ?? 沒有賦值表達式的時候,會被自動賦值為上面遇到的第一個表達式
?? ? ?
?? ? ?
?? ?? 單行使用法:
?? ???? const(
????? a,b=iota,iota+3//a=0,b==0+3==3
?? ?? c,d???? //c=iota==1,d=iota+3==1+3==4
?? ?? f=iota? //f==iota==2
?? ?? )
?? ?? 注意是每一行,iota只加1,不管這一行聲明了多少常量查看全部 -
?常量也可以單行聲明并賦值:
?const apple,banana string=”蘋果“,”香蕉“
?const a,b=1,"你好"(隱式聲明常量會自動識別數據類型)
?UTF8每個漢字占三個字節大小查看全部 -
常量的定義充形式上可分為顯示和隱式:
?? 顯示:const identifier [type] =value
?? 隱式 :const identifier =value(通常叫無類型常量)
常量可以提使用內置表達式定義:如:len(),unsafe.Sizeof()等
常量范圍目前只支持布爾型、數字型、(整數型、浮點型和復數)和字符串型查看全部 -
var a,b,c int =1,2,3? 可以變成 var a,b,c =1,2,3 (省略類型) 還可以變成 a,b,c :=1,2,3(省略掉var)
不過要注意的是:var只能在函數體內做局部變量時省略,而數據類型都可以省略
?"_"相當于一個垃圾桶,把不要的值丟到垃圾桶里查看全部 -
? 單個變量的聲明和賦值:
? 1.變量的聲明格式:var<變量名稱>[變量類型]
? 2.變量的賦值格式:<變量名稱>=<值,表達式,函數等>
? 3.聲明和賦值同時進行:var<變量名稱>[變量類型]=<值,表達式,函數等>
? 4.分組聲明格式:
? var(
???? i int
?? ? j float32
?? ? name string
?? ? )
?? ?
?? ?
同一行聲明多個變量和賦值:var a,b,c int =1,2,3 或者a,b:=1,2
全局變量的聲明必須使用var關鍵字,局部變量則可以省略
特殊變量下劃線"_"
?
go中不存在隱式轉換,類型轉換必須是顯式的
類型轉換只能發生在兩種兼容類型之間
類型轉換格式:<變量名稱>[:]=<目標類型>(<需要轉換的變量>)
大寫字母開頭的變量是可導出的,也就是其他包可讀取的,是公用變量:
小寫字母開頭的就是不可導出的,是私有變量查看全部 -
數據類型:
? 數值類型,字符類型和布爾類型;
? 派生類型;
? 類型零值和類型別名
? 類型所占存儲大小
?
? 數據類型:
? 整形、浮點型、復數、字符串、和布爾型
? 數據內存的出現是為了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。
? 布爾的值只可以是常量true或者false
? 字符串類型string,統一編碼為“UTF-8”.
?
? uint8;無符號8位整型
? uint16;無符號16位整型
? uint32;無符號32位整型
? uint64;無符號64位整型
? int8;有符號8位整型
? int16;有符號16位整型
? int32;有符號32位整型
? int64;有符號64位整型
?
? float32 32位浮點型數
? float64 84位浮點型數
? complex64 32位實數和虛數
? complex128 64位實數和虛數
?
? byte 類似uint8
? rune 類似int32
? uint 32位或64位(具體大小根據每個計算機的操作系統大小來定)
? int? 與uint一樣大小
? uintptr 無符號整型,用于存放一個指針
?
? 派生類型:
? 指針類型(pointer)
? 數組類型
? 結構化類型(struct)
? Channel類型(chan)
? 函數類型(func)
? 切片類型(slice)
? 接口類型(interface)
? Map類型(map)
?
? 類型零值和類型別名:
? 類型零值不是空值,而是某個變量被聲明后的默認值,一般情況下,值類型默認值為0,布爾型默認值為false,string默認值為空字符串(就是什么也沒有);
? 我們可以對類型設置別名,但是別名和原數據類型的類型不一樣,比如說type 別名 int16 (這時用別名定義的變量和用int16定義的變量不可以一起運算,而全部用別名定義的變量可以)查看全部 -
import別名,“.”,"_"
別名操作的含義是:將導入的包命名為另一個容易記憶的別名
點(.)操作的含義是:點(.)標識的包導入后,調用該包中函數時可以省略前綴包名;
下劃線(_)操作的含義是:導入該包,但不導入整個包,而是執行該包中的init函數,因此無法通過包名來調用包中其他的函數。使用下劃線(_)操作往往是為了注冊包里的引擎,讓外部可以方便地使用;
???查看全部 -
import 的基本原理:
? 如果一個main導入其他包,包將被順序導入
? 如果導入的包中以來其他包(包B),會首先導入B包,然后初始化B包中的常量與變量,最后如果B中有init,會自動執行initial();
? 所有包到入完成之后才會對main中常量和變量進行初始化,然后執行main中的init函數(如果存在),最后執行main函數;
? 如果一個包被導入多次則該包只會被導入一次;查看全部 -
const
查看全部 -
語言學習查看全部
-
1
查看全部 -
https://golang.org這個網址在國內應該不好打開,學習的同學,可以轉go語言中文網,網址:https://studygolang.com
查看全部 -
gofmt
查看全部
舉報