github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/sync/atomic/value.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package atomic 6 7 // Valueは、一貫した型の値のアトミックなロードとストアを提供します。 8 // Valueのゼロ値は [Value.Load] からnilを返します。 9 // [Value.Store] が呼び出された後、Valueはコピーしてはなりません。 10 // 11 // 最初の使用後、Valueはコピーしてはなりません。 12 type Value struct { 13 v any 14 } 15 16 // Loadは、最も最近のStoreによって設定された値を返します。 17 // このValueに対してStoreの呼び出しがない場合、nilを返します。 18 func (v *Value) Load() (val any) 19 20 // Storeは、[Value] vの値をvalに設定します。 21 // 与えられたValueに対するStoreのすべての呼び出しは、同じ具体的な型の値を使用しなければなりません。 22 // 不一致の型をStoreするとパニックを引き起こし、Store(nil)も同様です。 23 func (v *Value) Store(val any) 24 25 // Swapは新しい値をValueに格納し、前の値を返します。Valueが空の場合はnilを返します。 26 // 27 // 与えられたValueに対するSwapのすべての呼び出しは、同じ具体的な型の値を使用しなければなりません。 28 // 不一致の型をSwapするとパニックを引き起こし、Swap(nil)も同様です。 29 func (v *Value) Swap(new any) (old any) 30 31 // CompareAndSwapは、[Value] の比較交換操作を実行します。 32 // 33 // 与えられたValueに対するCompareAndSwapのすべての呼び出しは、同じ具体的な型の値を使用しなければなりません。 34 // 不一致の型をCompareAndSwapするとパニックを引き起こし、CompareAndSwap(old, nil)も同様です。 35 func (v *Value) CompareAndSwap(old, new any) (swapped bool)