安全铸型
用于Go的安全数字类型转换库
English |简体中文
安全的数字类型转换库。支持所有的积分和浮动类型,除了uintptr。
这个库依赖于1.18+版本中引入的go generics。
使用方法:
val, ok := To[type](value)
ok == false 表示发生了溢出。但不管怎样, 总是等于类型转换 ( ) 的结果。val``type(value)
安全转换
import "github.com/chen3feng/safecast"
包safecast提供了一种安全的方法来将一个数字值从A类型转换到B类型,并有溢出和下溢检查。
funcTo
func To[ToType numericType, FromType numericType](value FromType) (result ToType, ok bool)
To将一个数值从FromType安全地转换为指定的ToType类型。结果总是与通常的类型转换(type(value))相同,但是当溢出或下溢发生时,ok为假。
例子 (浮点数溢出)
package
输出
+Inf false
例子 (Int无溢出)
package
输出
255 true
例子 (Int 溢出)
package
输出
0 false
例子 (范围内的值)
package
输出
1 true
例子 (超出范围的值)
package
输出
4294967295 false