Go 如何以本机方式连接字符串和整数?

Go 如何以本机方式连接字符串和整数?,go,Go,到目前为止,我所发现的将字符串与Go中的int连接起来的最短最干净的方法如下: "blahblah" + strconv.Itoa(42) + "something" 导入包strconv 因为Go语言的一个座右铭是简单,所以我很惊讶必须导入一个包来实现这一点 因此,我的问题是:有没有这样更干净的方法 显然,我尝试了以下语法,甚至没有编译: "blahblah" + 42 + "something" 我也试过了,这实际上是一个值的强制转换,它不是我想要的,它将值转换为相应的unicode字符

到目前为止,我所发现的将字符串与Go中的int连接起来的最短最干净的方法如下:

"blahblah" + strconv.Itoa(42) + "something"
导入包strconv

因为Go语言的一个座右铭是简单,所以我很惊讶必须导入一个包来实现这一点

因此,我的问题是:有没有这样更干净的方法

显然,我尝试了以下语法,甚至没有编译:

"blahblah" + 42 + "something"
我也试过了,这实际上是一个值的强制转换,它不是我想要的,它将值转换为相应的unicode字符,对于值42,它将是*:

"blahblah" + string(42) + "something"

这将实现它使用反射的技巧:

str := fmt.Sprintf("blah %d blah", 42)

可以使用不同的打印命令执行所需操作。这不是一个单一的班轮,但它的工作

package main

import "fmt"

func main() {
    fmt.Print("blahblah")
    fmt.Print(42)
    fmt.Print("something")
}

是的,我考虑过这个,但在某些情况下,我觉得这比普通+运算符可读性差。我想我还是会选择这个,它看起来是最干净的方式,没有任何额外的依赖性。嗯,你必须导入fmt包。但是我已经见过很多次使用这种技术。是的,但是这会导入fmt包。我认为@Joffrey正在寻找一种完全不进口的方法。@Intermernet这是真的,这是我的第一个目标,但我认为这是不可能的,即使我希望被证明是错误的。但无论如何,我相信我已经在几乎所有地方导入了fmt包,至少在一些调试日志记录中是这样,所以它并没有真正添加任何内容。strconv是实现这一点的本机和清晰方法,另一种方法是通过一些从int到string的自动转换,这可能会产生误导,并降低灵活性。请查看并提取所需的功能。第62行的formatBits函数完成了大部分繁重的工作,但可以处理以许多基数表示的整数。您应该能够根据自己的需要对其进行简化。@Intermernet感谢您的建议,但我正在寻找在go中执行此操作的标准方法,因为我对这种语言非常陌生,因为我不相信Itoa是最实用的方式。关于这一点,当Go寻求一个又一个简单的方式时,设计师们并不想让你的代码尽可能的短,通常设计师回答列表上的问题时,粗略地说,只需再写几行就可以了。如果您来自Python、Perl等,您将不得不做一些您不习惯做的事情。相反,它们意味着规范是可以理解的,并且可以按照机器所做的操作来运行您提供的代码。这包括缺少隐式转换(LaC++或JS),这就是在这里咬你的东西。对于特定的问题,StrCONV或FMT对我来说似乎很好,根据它在上下文中看起来更好。谢谢,但是我的目标是构建一个字符串,特别是在String方法中。您的解决方案打印到控制台。