Cassandra 十进制的 Golang 类型

标签 go cassandra

很抱歉问这个问题,但在累了之后我把它写在这里。

我无法将 Golang 的任何变量类型映射到 Cassandra 的 Decimal 类型,这是多精度的

我使用了接口(interface) {},只要我不为变量赋值,它就可以工作。我一这么做,就有问题了

最佳答案

您可以使用无限精度十进制包并直接导入此gopkg,

导入“gopkg.in/inf.v0”

假设您有一个特定的模型,它反射(reflect)或绑定(bind)到具有十进制数据类型的 Scylla/Cas​​sandra 表,

type TradeModel struct {
    Balance *inf.Dec
}

要将字符串强制转换为这种十进制数据类型,您可以使用以下函数:

func ToDecimal(s string) *inf.Dec {
    d := new(inf.Dec)

    res, _ := d.SetString(s)
    return res
}

看看这些示例:https://github.com/go-inf/inf/blob/master/dec.go

注意:为了简单起见,我没有明确编写 SetString 返回值的第二个结果。无论转换是否成功,该参数都会返回一个 bool 值,这很重要(在我的例子中,这已经在直接助手中)。

关于Cassandra 十进制的 Golang 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53067051/

相关文章:

mysql - 将 MySQL 数据/查询集转换为等效的 Cassandra 表示

google-app-engine - http.DefaultTransport 和 http.DefaultClient 在 AppEngine 中不可用,但库使用它们

arrays - 如何在 Go 中将二维数组作为函数参数传递?

cassandra - 允许在 cql 中进行过滤、数据建模

java - Astyanax 中的 Cassandra CQL3 支持

ubuntu - 我如何重新启动 apache cassandra 2.0.4?

cassandra - 使用虚拟节点在种子节点(总共 2 个)死亡时重新平衡 Cassandra 1.2 集群

go - 使用 fmt.Printf 向数字添加零填充

docker - 如何列出网络; docker 容器附加到使用格式模板?

windows - 使用 golang 映射 Windows 驱动器的最佳方法是什么?