golangデイリーレコード

  • データがポインタである実施例に格納されているため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詳細な地図

おすすめ

転載: www.cnblogs.com/wayland3/p/11992927.html