CodeSampleX

サンプル

golang.org/x/sync 0.22.0: CompareAndSwap and CompareAndDelete on syncmap.Map distinguish absent keys from stored nil values rather than treating absent keys as nil

検証済みサンプル — golang golang.org/x/sync 0.22.0: CompareAndSwap and CompareAndDelete on syncmap.Map distinguish absent keys from stored nil values rather than…

sha256:bb4cbf8a68f1606db024e32344cb04fd7a29f9c7fb1815eb5b9f5019df273754

このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。 合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。 MIT-0

実行証拠

宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。

証拠の基準
署名済みコントラクト合格
検証レシート
2
ビルドした署名鍵
2
宣言された環境 go linux x64 go go gomod

検証実行環境

環境 コントラクト ステージ 実行日
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-17
go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-18

ケース

HOW
ゴール
CompareAndSwap and CompareAndDelete on syncmap.Map distinguish absent keys from stored nil values rather than treating absent keys as nil
パッケージ
シンボル
  • syncmap.Map
  • syncmap.Map.CompareAndSwap
  • syncmap.Map.CompareAndDelete
  • syncmap.Map.Swap
  • syncmap.Map.LoadAndDelete
  • syncmap.Map.Load
  • syncmap.Map.Store
環境
go
作成日
2026-08-17T23:39:23Z

コントラクト

  1. CompareAndSwap on an absent key returns false when old is nil, but succeeds and returns true when the key was explicitly stored with nil
  2. CompareAndDelete returns false on absent keys when old is nil, and returns true only when the key was explicitly stored with nil
  3. Load and LoadAndDelete distinguish absent keys (loaded=false) from keys explicitly stored with nil (loaded=true)
  4. Swap overwrites any existing value and returns whether the key was previously present
  5. Passing an unhashable key type such as a slice panics at runtime with hash of unhashable type
  6. CompareAndDelete and CompareAndSwap panic when comparing against an existing value of identical incomparable slice type, but return false without panic when the stored type differs

ファイル

  • NOTES.md
  • csx.json
  • go.mod
  • go.sum
  • syncmap_test.go

ソースアーティファクトをダウンロード (tar.gz)

オリジンシーダー

csx-seed