使用規則
- 一個文件夾下只能有一個包,同一個包的文件不能再多個文件夾下。
- 如果文件導入的package不是main包,而是其他名稱的包(比如hello),編譯時會生成hello.a文件,這個.a文件不是可執行文件,而是用來被導入使用。
- 在包級別聲明的變量,如果有初始化表達式則用表達式初始化,還有一些沒有初始化表達式的,例如某些表格數據初始化並不是一個簡單的賦值過程。在這種情況下,我們可以用一個特殊的init初始化函數來簡化初始化工作。這樣的init初始化函數除了不能被調用或引用外,其他行爲和普通函數類似。在每個文件中的init初始化函數,在程序開始執行時按照它們聲明的順序被自動調用。
- 每個包在解決依賴的前提下,以導入聲明的順序初始化,每個包只會被初始化一次。因此,如果一個p包導入了q包,那麼在p包初始化的時候可以認爲q包必然已經初始化過了。初始化工作是自下而上進行的,main包最後被初始化。以這種方式,可以確保在main函數執行之前,所有依賴的包都已經完成初始化工作了。
下圖爲包的導入順序以及init函數的執行順序
使用方式
import "cbwcole.com/demo" // 直接導入
mport(
. "fmt" // 點操作
)
import(
f "fmt" // 別名操作,別名操作後,可以使用f代替fmt。比如 f.println("hello")
)
import (
“database/sql”
_ “github.com/ziutek/mymysql/godrv”
// 下劃線操作,如果我們只用到某個包的init方法,可以在導入該包的前面加上下劃線,多用在數據庫驅動
// 方面。tips(該包所有的init方法都會被調用)
)
基本數據類型
Go中,基本數據類型主要有以下4種
1 | 布爾型 布爾型的值只可以是常量 true 或者 false。一個簡單的例子:var b bool = true。 |
2 | 數字類型 整型 int 和浮點型 float32、float64,Go 語言支持整型和浮點型數字,並且支持複數,其中位的運算採用補碼。 |
3 | 字符串類型: 字符串就是一串固定長度的字符連接起來的字符序列。Go 的字符串是由單個字節連接起來的。Go 語言的字符串的字節使用 UTF-8 編碼標識 Unicode 文本。 |
4 | 派生類型: 包括:
|
詳細數字類型
1 | uint8 就是我們熟知的byte類型 無符號 8 位整型 (0 到 255) 2**8 |
2 | uint16 無符號 16 位整型 (0 到 65535) |
3 | uint32 無符號 32 位整型 (0 到 4294967295) |
4 | uint64 無符號 64 位整型 (0 到 18446744073709551615) |
5 | int8 有符號 8 位整型 (-128 到 127) |
6 | int16 有符號 16 位整型 (-32768 到 32767) |
7 | int32 有符號 32 位整型 (-2147483648 到 2147483647) |
8 |
int64 |
不帶數字的int類型,跟系統有關,例如在32位系統上,int就是int32,在64位系統上,int就是int64。
浮點型(任何語言的浮點數都是不精確的,只能說盡可能的精確到多少位)
1 | float32 IEEE-754 32位浮點型數 |
2 | float64 IEEE-754 64位浮點型數 |
3 | complex64 32 位實數和虛數 |
4 | complex128 64 位實數和虛數 |
其他數字類型
1 | byte 類似 uint8 |
2 | rune 類似 int32。主要用在循環操作中處理某些中文亂碼的問題 |
3 | uint 32 或 64 位 |
4 | int 與 uint 一樣大小 |
5 | uintptr 無符號整型,用於存放一個指針 |
如果對你有幫助,可否在文章右側點個贊再走呢~~
本文爲原創,轉載請註明出處