1 回答
TA贡献1797条经验 获得超4个赞
在 Go 中,不存在像 es6 那样的字符串模板文字。但是,您绝对可以使用fmt.Sprintf执行类似的操作。
fmt.Sprintf("hello %s! happy coding.", input)
在你的情况下,它将是:
bot := DigitalAssistant{
fmt.Sprintf("%s", input),
"teamAwesome",
"awesomebotimagename",
"0.1.0",
1,
8000,
"health",
"fakeperson@gmail.com",
}
顺便说一句,这是一个好奇的问题。为什么需要在非常简单的字符串(例如 )上使用字符串模板文字${input}?为什么不只是input?
编辑1
我不能只输入输入,因为 go 给出错误无法使用输入(类型 []byte)作为字段值中的类型字符串
[]byte可转换为字符串。如果您的input类型是[]byte,只需将其写为string(input).
bot := DigitalAssistant{
string(input),
"teamAwesome",
"awesomebotimagename",
"0.1.0",
1,
8000,
"health",
"fakeperson@gmail.com",
}
编辑2
如果值是 int,为什么我不能做同样的事情?因此,对于括号 1 和 8000 中的值,我不能只执行int(numberinput)or int(portinput),否则我会收到错误cannot use numberinput (type []byte) as the type int in field value
可以通过使用显式转换来实现从string到或从 到 的转换。然而,这种方法并不适用于所有类型。[]byteT(v)
例如,要转化[]byte为int更多的努力是需要的。
// convert `[]byte` into `string` using explicit conversion
valueInString := string(bytesData)
// then use `strconv.Atoi()` to convert `string` into `int`
valueInInteger, _ := strconv.Atoi(valueInString)
fmt.Println(valueInInteger)
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报