- データがポインタである実施例に格納されているためgolangマップスライスにおいてちゃんインターフェースポインタを渡します。
EG:スライス
``
タイプstruct {スライス
アレイunsafe.Pointer
LEN INT、
CAPのINT、
}
传递的过程中也是复制的 struct
结果:
1.append不能影响原slice
2.json.Unmashal(buf, &slice)需要传入slice地址
3.一个slice占三个字节
* 赋值使用的是地址
たint型
I = 1
i的类型不能变,赋其他值 I的地址也不会变,有别于动态语言
* map中的struct 不能直接修改 struct的属性
M:=マップ[ストリング]学生{ "人":{ "名前": "AAA"}}
。M [ "人"]名= "BBB"
是错误的
A //マップ。ために行くAヘッダー
タイプHMAP構造体{
lenの(マップ)を呼び出す要素の//数、直接戻り、この値
INT COUNT
フラグUINT8
バケット//数log_2
B UINT8
バケットオーバーフロー概数を@
UInt16型noverflow
//ハッシュキー計算時間は、ハッシュ関数を通過する
hash0するUInt32
//バケットポイントアレイ、サイズB ^ 2
の要素の数は、それがゼロである場合、// 0を
バケットunsafe.Pointer
//拡張バケットの長さがoldbuckets倍されるとき、
oldbuckets unsafe.Pointer
//拡張の進行状況を示し、このアドレスより小さいバケットの移行は完了です
nevacuate UIntPtr
エクストラ*フィールドmapextra //オプション
}
`` `
// TODO詳細な地図