一組しか持てないため、階層化することで複数の値を管理します。メソッドを呼び出して階層化するということになります。自身のコンテキストを基底として親コンテキストを再帰的に遡り、該当するキーをもつコンテキストを探すのです。0xc0000b4000このプログラムのコンテキストの階層を俯瞰するとこんな感じになるでしょう。値が別の処理などで書き換えられる心配がありません。逆に子ゴルーチンの値をコンテキスト経由で親ゴルーチンに渡すといったことはできません。コンテキストの用途を「共有」ではなく「伝達」と書いたのはこのような性質からです。同じキーを同時に書き換えるとパニックが発生します。引数にはどんな型でも指定できます。指定しましたが、衝突を避けるために独自の型を使うことが推奨されています。"black")ctx.Value(ctxKey("color"))Cancelキャンセル状態を手動で伝播するための仕組みです。