go語言聖經
-復合資料型別
1.以不同的方式組合基本型別可以構造出來的復合資料型別
2.四種型別——陣列、
slice
、map
和結構體
3.陣列是由同構的元素組成——每個陣列元素都是完全相同的型別——結構體則是由異構的元素組成的
4.slice和
map則是動態的資料結構,它們將根據需要動態增長
go語言聖經-陣列
1.因為陣列的長度是固定的,因此在
go語言中很少直接使用陣列
2.陣列字面值語法用一組值來初始化陣列
3.陣列的長度是陣列型別的乙個組成部分
4.printf函式的
%x副詞引數,它用於指定以十六進製制的格式列印陣列或
slice
全部的元素,
%t副詞引數是用於列印布林型資料,
%t副詞引數是用於顯示乙個值對應的資料型別
5.函式傳參可以顯式地傳入乙個陣列指標,那樣的話函式通過指針對陣列的任何修改都可以直接反饋到呼叫者
練習 4.1: 編寫乙個函式,計算兩個
sha256
雜湊碼中不同
bit的數目。(參考
2.6.2
節的popcount
函式。)
練習 4.2: 編寫乙個程式,預設情況下列印標準輸入的
sha256
編碼,並支援通過命令列
flag
定製,輸出
sha384
或sha512
雜湊演算法。
1. 檢視下文件
godoc crypto/sha256
func sum256(data byte) [size]byte
2. godoc crypto
package mainimport(
"fmt"
"crypto/sha256"
"crypto/sha512"
"flag"
"strings"
)//命令列標誌
var hashmethod=flag.string("s","sha256","請輸入雜湊演算法")
func main()
/**/
func comparesha256(str1 string,str2 string)int
}
}
return num }/*
練習 4.2: 編寫乙個程式,預設情況下列印標準輸入的sha256編碼,並支援通過命令列flag定製,輸出sha384或sha512雜湊演算法。
Go 復合資料型別
3 map 4 結構體 5 json 文字和html模板 關於函式入參 當呼叫乙個函式的時候,函式的每個呼叫引數將會被賦值給函式內部的引數變數,所以函式引數變數接收的是乙個複製的副本,並不是原始呼叫的變數。因為函式引數傳遞的機制導致傳遞大的陣列型別將是低效的,並且對陣列引數的任何的修改都是發生在複製...
Go語言復合資料型別之map
map的操作 雜湊表是乙個無序的key value對的集合,要求所有的key必須不同,然後通過給定的key可以在o 1 內檢索 更新或者刪除對應的value。go語言中map就是乙個雜湊表,其表達形式為map key value key在map中是同一種資料型別,其中key必須是支援比較運算子的型別...
Go 復合資料型別 切片 slice
切片 package main import fmt math rand time func main arr1 int arr2 make int,6,8 arr3 make int,6 fmt.printf 長度len d,容量cap d n len arr cap arr 6 6 fmt.pr...