Go-如何将任意int或float转成string

2021-04-07 15:24:07

from:https://stackoverflow.com/questions/44539789/how-to-convert-number-int-or-float64-to-string-in-golang

Q: 我如何将给定的任意int或float64类型的数字转义为string类型?如果使用strconv.FormatFloatFormatInt的话我需要提前之前它是int或float才行,当我们提前不知道它们类型且不知道float的有效数字长度的情况下怎么格式化?
比如:
当我得到一个数字5,它应该被转成“5”而不是“5.00”;
当我得到一个小数1.23,它应该被转成“1.23”而不是“1”
A1: 我们可以使用fmt.Sprint,它会将任意类型的变量转换成string

package main

import (
    "fmt"
)

func main() {
    f := fmt.Sprint(5.03)
    i := fmt.Sprint(5)
    fmt.Println("float:",f,"\nint:",i)
}

A2: 当我们在不知道具体是哪种类型时,我们也可以使用的fmt.Sprintf%v方式:

fmt.Sprintf("%v", 1.23) // "1.23"
fmt.Sprintf("%v", 5) // "5"
Serverless之Fission

背景 当前网上关于Fission的介绍和其他serverless产品比起来要少很多,中文资料就更少了,网上的活跃程度也感觉明显不够,这里我也当做是做了一个简单的总结笔记吧。 摘要 Fission 是由私有云服务提供商领导开源的 serverless 产品,它借助 kubernetes 灵活强大的编排能力完成容器的管理调度工作,而将重心投入到 FaaS 功能的开发上,其发展目标是成为 AWS lambda 的开源替代品。Fission 非常有趣,因为它介于 Kubeless 和 OpenWhisk 中间。它很大程度上了依赖了 Kubernetes 的很多特性,但又没有完全集成。这种方法的好处是它可以利用 Kubernetes 的长处(比如自动弹性伸缩),但在需要做一些其他不同的事情的时候可以获得更好的性能。例如,它有一个相当复杂的冷启动池机制。 Fission 由 Platform9 支持,可以通过 Helm 来安装。使用了 Influxdb 来处理状态,以及提供了 FluentD