String 将整数值添加到单个语句的字符串中
我想知道如何将整数值添加到字符串值中,如“10”。我知道我可以通过先将String 将整数值添加到单个语句的字符串中,string,go,int,type-conversion,String,Go,Int,Type Conversion,我想知道如何将整数值添加到字符串值中,如“10”。我知道我可以通过先将字符串转换为int,然后在添加整数后再将其转换回字符串,来实现这一点。但我能在golang的一句话中做到这一点吗。例如,我可以使用多行代码来执行此操作,如下所示: i, err := strconv.Atoi("10") // handle error i = i + 5 s := strconv.Itoa(i) 但是,有什么方法可以在一条语句中实现这一点吗?标准库中没有现成的函数来完成您想要做的事情。这样做的原因是,将一个
字符串
转换为int
,然后在添加整数后再将其转换回字符串
,来实现这一点。但我能在golang的一句话中做到这一点吗。例如,我可以使用多行代码来执行此操作,如下所示:
i, err := strconv.Atoi("10")
// handle error
i = i + 5
s := strconv.Itoa(i)
但是,有什么方法可以在一条语句中实现这一点吗?标准库中没有现成的函数来完成您想要做的事情。这样做的原因是,将一个数字添加到一个可用的
字符串
中,并将结果作为另一个字符串
是(非常)低效的
string
类型的模型(内存表示)不支持有效地向其添加数字(更不用说string
值是不可变的,必须创建一个新值);例如,int
的内存模型确实支持高效添加(CPU也有直接操作)。没有人想将int
s添加到存储为string
值的数字中。如果您想添加数字,请准备好数字,如下所示:数字。当您想要打印或传输时,只需将其转换为字符串
(如果必须)
但是,如果您有一个ready util函数,那么所有内容都将成为一条语句:
func add(s string, n int) (string, error) {
i, err := strconv.Atoi(s)
if err != nil {
return "", err
}
return strconv.Itoa(i + n), nil
}
使用它:
s, err := add("10", 5)
fmt.Println(s, err)
输出(在上尝试):
15
15 <nil>