toUint64不应该支持字符串float转uint64
个人认为toUint64这个底层方法不应该支持字符串float转uint64, 如果需要将字符串float转换为uint64应该使用Float64方法
uint64(conv.MustFloat64("11.12")),或者再包装一个高级方法,这里应该仅支持基础的转换,不应该有额外的开销![]()
Originally posted by @fffailed in #4
conv 的设计初衷是尽可能地将 any 类型的数据转换为指定类型的数据,并不是一个精确的转换,比如 toInt64 支持将 bool 转换为 1 和 0。 toInt64 本身也支持将 float 转换为 int64 的,如果不支持浮点字符串转换为 int64,就会有点割裂。
conv 的设计初衷是尽可能地将 any 类型的数据转换为指定类型的数据,并不是一个精确的转换,比如 toInt64 支持将 bool 转换为 1 和 0。 toInt64 本身也支持将 float 转换为 int64 的,如果不支持浮点字符串转换为 int64,就会有点割裂。
这样的话 "nil" "true" "false" 这种字符串都应该支持了。
conv 的设计初衷是尽可能地将 any 类型的数据转换为指定类型的数据,并不是一个精确的转换,比如 toInt64 支持将 bool 转换为 1 和 0。 toInt64 本身也支持将 float 转换为 int64 的,如果不支持浮点字符串转换为 int64,就会有点割裂。
这样的话 "nil" "true" "false" 这种字符串都应该支持了。
这个库最初是因为我的 orm 和另一个 ini 解析库要用到,就把功能剥离出来放在一起作为一个库使用。
当时的想法是既然作为一个独立的库,那就尽可能地将数据转换为想要的类型。toint64 也的确有支持 true、false、on、off 等常用的 bool 字符串的想法,还想支持 2^128 和 1234_4567 这种常见的数值表示形式。
但是计划赶不上变化,目前这个库我只能是以维护为主,尽量不破坏其原有的兼容性。你如果有想法和时间,可以发 PR 帮忙改进一下。