Go語言入門1 基礎知識

2021-09-06 13:36:00 字數 4982 閱讀 7456

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.當識別符號 包括敞亮 變數 型別 函式名 結構欄位等 以乙個大寫字母開頭,那麼使用這種形式的識別符號的物件就可以被外部包的 所使用...