Files
bulma/atomic_value_trap.go

22 lines
505 B
Go

// bulma/atomic_value_trap.go
package main
import (
"fmt"
"sync/atomic"
)
func main() {
var v atomic.Value
v.Store("initial string") // 首次存储 string
// ❌ 错误:尝试存储不同类型的值(会 panic!)
defer func() {
if r := recover(); r != nil {
fmt.Println("⚠️ 捕获 panic:", r)
fmt.Println("✅ 正确做法:始终存储相同类型(推荐指针)")
}
}()
v.Store(123) // 运行时 panic: sync/atomic: store of inconsistently typed value into Value
}