atomic 支持更多类型
最后更新于:2022-04-02 02:38:20
[TOC]
## 安装
```
$ go get -u go.uber.org/atomic@v1
```
## 语法
```
type Bool
func NewBool(v bool) *Bool
func (x *Bool) CAS(o, n bool) bool
func (x *Bool) Load() bool
func (x *Bool) MarshalJSON() ([]byte, error)
func (x *Bool) Store(v bool)
func (b *Bool) String() string
func (x *Bool) Swap(o bool) bool
func (b *Bool) Toggle() bool
func (x *Bool) UnmarshalJSON(b []byte) error
type Duration
func NewDuration(v time.Duration) *Duration
func (d *Duration) Add(n time.Duration) time.Duration
func (x *Duration) CAS(o, n time.Duration) bool
func (x *Duration) Load() time.Duration
func (x *Duration) MarshalJSON() ([]byte, error)
func (x *Duration) Store(v time.Duration)
func (d *Duration) String() string
func (d *Duration) Sub(n time.Duration) time.Duration
func (x *Duration) Swap(o time.Duration) time.Duration
func (x *Duration) UnmarshalJSON(b []byte) error
type Error
func NewError(v error) *Error
func (x *Error) Load() error
func (x *Error) Store(v error)
type String
func NewString(v string) *String
func (x *String) Load() string
func (s *String) MarshalText() ([]byte, error)
func (x *String) Store(v string)
func (s *String) String() string
func (s *String) UnmarshalText(b []byte) error
type Float64
type Int32
type Int32
type Uint64
type Int64
type Uint32
func NewUint32(i uint32) *Uint32
func (i *Uint32) Add(n uint32) uint32
func (i *Uint32) CAS(old, new uint32) bool
func (i *Uint32) Dec() uint32
func (i *Uint32) Inc() uint32
func (i *Uint32) Load() uint32
func (i *Uint32) MarshalJSON() ([]byte, error)
func (i *Uint32) Store(n uint32)
func (i *Uint32) String() string
func (i *Uint32) Sub(n uint32) uint32
func (i *Uint32) Swap(n uint32) uint32
func (i *Uint32) UnmarshalJSON(b []byte) error
```
';