2014-12-29 47 views
-2

最短(乾淨)的方式,到目前爲止,我發現來連接與圍棋整數字符串如下:如何在本地連接字符串和整數?

"blahblah" + strconv.Itoa(42) + "something" 

(進口包strconv

由於Go語言的一個口號是要簡單,我很驚訝不得不導入一個包來做到這一點。

因此,我的問題:是否有任何本機(因此更乾淨)的方式呢?


很明顯,我想下面的語法,這甚至不編譯:

"blahblah" + 42 + "something" 

我也試過了一個,這實際上是價值的演員,這是不是我想(這將值轉換爲對應的Unicode字符,這將是*爲值42):

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

STRCONV是天然的和清晰的方式來做到這一點,otherway你中繼上的一些自動轉換從int到字符串,它可能會產生誤導,爲您提供靈活性較差 –

+1

看一看http://golang.org/src/strconv/itoa.go並提取你想要的功能。第62行的'formatBits()'函數完成大部分繁重的工作,但可以處理以許多基數表示的整數。你應該能夠根據你的需求來簡化它。 – Intermernet

+0

@Intermernet感謝您的建議,但我寧願尋找這樣做的標準方式,因爲我對這種語言很陌生,並且因爲我無法相信'Itoa'是最實用的方法。 – Joffrey

回答

1

這會做的伎倆(它使用反射雖然):

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

是的,我想到了那個,但是在某些情況下,IMO比普通的'+'操作符更不可讀。 – Joffrey

+0

無論如何,我想我會去那個,它看起來像沒有任何額外依賴的最乾淨的方式。 – Joffrey

+0

嗯,你必須導入'fmt'包。但我已經看到這種技術使用了很多次。 – Matt

0

您可以使用不同的打印命令可以做你想做的。這不是一個班輪,但它的工作原理。

package main 

import "fmt" 

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

Playground

+0

謝謝,但我的目標是建立一個字符串,特別是在'String()'方法中。您的解決方案打印到控制檯。 – Joffrey