錄(?)
[-]
原文hello 世界包匯入
匯出名函式
多值返回
命名返回值
變數變數的初始化
短變數宣告
基本型別
零值型別轉換
型別推導
常量數值常量
forif
switch
defer
package main
import
"fmt"
func main()
輸出:
hello, 世界
每個 go 程式都是由包構成的。
程式從 main 包開始執行。
本程式通過匯入路徑 「fmt」 和 「math/rand」 來使用這兩個包。
按照約定,包名與匯入路徑的最後乙個元素一致。例如,"math/rand"
包中的原始碼均以 package rand 語句開始。
package main
import
( "fmt"
"math/rand"
)func
main
()
輸出:is1
此**用圓括號組合了匯入,這是「分組」形式的匯入語句。
當然你也可以編寫多個匯入語句,例如:
import
"fmt"
import
"math"
不過使用分組匯入語句是更好的形式。
package main
import
( "fmt"
"math"
)func
main
()
輸出:
***x 5
===
在 go 中,如果乙個名字以大寫字母開頭,那麼它就是已匯出的。 例如, pizza 就是個已匯出名, pi 也同樣,它匯出自 math 包。
pizza 和 pi 並未以大寫字母開頭,所以它們是未匯出的。
在匯入乙個包時,你只能引用其中已匯出的名字。任何「未匯出」的名字在該包外均無法訪問。
執行**,觀察錯誤輸出。
然後將 math.pi 改名為 math.pi 再試著執行一次。
package main
import
( "fmt"
"math"
)func
main
()
輸出:
3.141592653589793
函式可以沒有引數或接受多個引數。
在本例中, add 接受兩個 int 型別的引數。
注意型別在變數名 之後 。
package main
import
"fmt"
func add(x int, y int) int
func main()
輸出:
55
當連續兩個或多個函式的已命名形參型別相同時,除最後乙個型別以外,其它都可以省略。
在本例中,
x int, y int
被縮寫為
x, y int
package main
import (
"fmt"
)func main()
func add(a, b int) int
輸出:
20
函式可以返回任意數量的返回值。
swap 函式返回了兩個字串。
package main
import
"fmt"
func swap(x, y string) (string, string)
func main()
輸出:
world hello
go 的返回值可被命名,它們會被視作定義在函式頂部的變數。
返回值的名稱應當具有一定的意義,它可以作為文件使用。
沒有引數的 return 語句返回已命名的返回值。也就是直接
返回。
直接返回語句應當僅用在下面這樣的短函式中。在長的函式中它們會影響**的可讀性。
package main
import(
"fmt"
)func main()
func show(a, b int) (x, y int)
輸出:
36 8
var 語句用於宣告乙個變數列表,跟函式的引數列表一樣,型別在最後。
就像在這個例子中看到的一樣, var 語句可以出現在包或函式級別。
package main
import (
"fmt"
)var a, b int
func main()
輸出:
0
0false
變數宣告可以包含初始值,每個變數對應乙個。
如果初始化值已存在,則可以省略型別;變數會從初始值中獲得型別。
package main
import (
"fmt"
)var a int =100
func main()
輸出:
100
1false
true
3.9
在函式中,簡潔賦值語句 := 可在型別明確的地方代替 var 宣告。
函式外的每個語句都必須以關鍵字開始( var 、 func 等等), 因此 := 結構不能在函式外使用。
package main
import (
"fmt"
)func main()
輸出:
10
2212
false
33.22
go 的基本型別有:
bool
string
intint8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
uintptr
byte
// uint8 的別名
rune
// int32 的別名
// 表示乙個 unicode 碼點
float32
float64
complex64
complex128
本例展示了幾種型別的變數。 同匯入語句一樣,變數宣告也可以「分組」成乙個語法塊。
int 、 uint 和 uintptr 在 32 位系統上通常為 32 位寬,在 64 位系統上則為 64 位寬。 當你需要乙個整數值時應使用 int 型別,除非你有特殊的理由使用固定大小或無符號的整數型別。
package main
import (
"fmt"
"math/cmplx"
)var (
tobe bool = false
maxint uint64 =1
<<64 -1
z complex128 = cmplx.sqrt(-5 +12i)
)func main()
輸出:
bool(false)
uint64
(18446744073709551615)
complex128((2
+3i))
沒有明確初始值的變數宣告會被賦予它們的 零值 。
Golang 通關初級(2)
目錄 go 具有指標。指標儲存了變數的記憶體位址。型別 t 是指向 t 型別值的指標。其零值為 nil var p int 操作符會生成乙個指向其運算元的指標。i 42 p ifmt.println p 通過指標 p 讀取 i p 21 通過指標 p 設定 i這也就是通常所說的 間接引用 或 重定向...
Sqli LABS通關筆錄 1
在第乙個關卡當中還是學到些知識。1.注釋語句多試試其他的幾個 2.不報錯可能是前面的語句沒有錯誤,union沒有得到執行。加單引號報錯了。從上面的錯誤提示當中,我們可以看到提交到sql中的1 在經過sql語句構造後形成 1 limit 0,1,多加了乙個 接下來想如何將多餘的 去掉 可以借鑑一下原始...
六級通關筆記 詞彙1
詞彙構成 字首 肯否 方向 數量 情感 狀態等 詞根 詞義 字尾 詞性 字首 1 時間 空間 pre 時間提前,預先 prewar 戰前的 predict 預言 precondition 前提條件 conditional 有條件的 premise 前提條件 promise 承諾 promising ...