1.常用命令
2.第乙個go程式
package main
import
("fmt"
)func
main()
控制台輸出:
➜ go run test.go
hello 世界!
3.基礎知識點package main //當前程式的包名,必須寫在第一行
import
"fmt"
//import關鍵字匯入其他的包
import abc "fmt"
//包別名,用abc替換fmt
import
("fmt"
//多個包用()
"time"
)const pi =
3.14
//常量的定義
var name =
"yuanmie"
//全域性變數的宣告與賦值
type newtype int
//一般型別宣告
type gopher struct
//結構的宣告
type golang inte***ce
//介面的宣告
func
main()
匯入包之後,就可以使用 《包名》.《函式名》來對包中的函式進行呼叫,例如:
func
main()
如果匯入包之後未呼叫其中的函式或者型別將會報出編譯錯誤
package main
import
("fmt"
"time"
//匯入了time包,但是沒呼叫就會報錯
)func
main()
控制台:
➜ gogogo go run test.go
# command-line-arguments
./test.go:9: imported and not used: "time"
4.可見性規則
go語言中,使用大小寫來決定該常量,變數,型別,介面,結構或函式是否可以被外部包所呼叫,根據規定:
函式名首字母小寫,即為private私有的,不可被外部呼叫函式名首字母大寫,即為public共有的,可以被外部呼叫
5.基本型別
布林型:bool 長度:1位元組
取值範圍:true, false
注意事項:不可以用數字代表true或false整型:int/uint
根據執行平台可能為32或64位
8位整型:int8/uint8
長度:1位元組
取值範圍:-128 ~ 127 / 0~255
16位整型:int16/uint16
長度:2位元組
取值範圍:-32768 ~ 32767 / 0~65535
32位整型:int32(rune別名)/uint32
長度:4位元組
取值範圍:-2^32/2 ~ 2^32/2-1 / 0 ~ 2^32-1
64位整型:int64/uint64
長度:8位元組
取值範圍:-2^64/2 ~ 2^64/2-1 / 0 ~ 2^64-1
位元組型:byte(uint8別名)
浮點型:float32/float64
長度:4/8位元組
小數字:精確到7/15小數字
複數:complex64/complex128
長度:8/16位元組
足夠儲存指標的 32 位或 64 位整數型:uintptr
其它值型別:array、struct、string(陣列,結構,字串)
引用型別:slice、map、chan(切片,類似於雜湊表,通道:用於併發)
介面型別:inteface
函式型別:func
package main
import
("fmt"
"math/cmplx"
)var
( tobe bool
=false
maxint uint64=1
<<64-
1 z complex128
= cmplx.
sqrt(-
5+12i)
)func
main()
//type: bool value: false
//type: uint64 value: 18446744073709551615
//type: complex128 value: (2+3i)
型別零值 :零值並不等於空值,而是當變數被宣告為某種型別後的預設值, 通常情況下值型別的預設值為0,bool為false,string為空字串
func
main()
型別別名type
(byte
int8
rune
int32
*** string
//***替代string
)func
main()
6.變數
單個變數的宣告與賦值
var a int
;//變數的宣告
a =1
;//變數的賦值
var b int
=123
;//宣告同時賦值
var c =
234;
//省略變數型別,由系統推斷
d :=
456//簡寫,全域性宣告變數不可以簡寫,只有方法內宣告才可以簡寫
多個變數的宣告與賦值// var (
// a = 1
// b = 2
// c = 3
// d = 4
// )
func
main()
變數的型別轉換package main
import
("fmt"
"strconv"
)func
main()
7.常量
常量的定義
常量的初始化規則與列舉
const
( a =1;
b)func
main()
const
( a =
'a' b =
iota
c ='b' d =
iota
)const
( e =
iota
)func
main()
8.運算子
go中的運算子均是從左至右結合
& 0010 都為1,才為1 2
| 1111 有乙個1,就為1 15
^ 1101 只有乙個1時候才為1 13
&^ 0100 第二個數為1時,第乙個相對應的數強制變為0 4
*/func
main()
demo
結合常量的iota與《運算子實現計算機儲存單位的列舉
const
( b float64=1
<<
(iota*10
) kb
mb gb
)func
main()
9.指標var p *
int
i :=
42p =
&i
fmt.
println
(*p)
// 通過指標 p 讀取 i
*p =
21// 通過指標 p 設定 i
go雖然保留了指標,但與其它程式語言不同的是,在go當中不支援指標運算以及」->」運算子,而直接採用」.」選擇符來操作指標目標物件的成員
func
main()
func
main()
結果:
42219
go語言基礎知識
go指標func main go 空指標 當乙個指標被定義後沒有分配到任何變數時,它的值為 nil。nil 指標也稱為空指標。nil在概念上和其它語言的null none nil null一樣,都指代零值或空值。乙個指標變數通常縮寫為 ptr。檢視以下例項 例項package main import...
go語言基礎知識6
go 語言函式 unc 函式由 func 開始宣告 function name 函式名稱,函式名和引數列表一起構成了函式簽名。parameter list 引數列表,引數就像乙個佔位符,當函式被呼叫時,你可以將值傳遞給引數,這個值被稱為實際引數。引數列表指定的是引數型別 順序 及引數個數。引數是可選...
Go基礎知識
1.func main 是程式開始執行的函式。main函式是每乙個可執行程式所必須包含的,一般來說都是在啟動後第乙個執行的函式 如果有init 函式則會先執行該函式 2.當識別符號 包括敞亮 變數 型別 函式名 結構欄位等 以乙個大寫字母開頭,那麼使用這種形式的識別符號的物件就可以被外部包的 所使用...