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)