int型のスライスのままではstrings.Join()できない
main.go
package main
import (
"fmt"
"strings"
)
func main() {
intSl := []int{1, 2, 3}
fmt.Println(strings.Join(intSl, " "))
// => cannot use intSl (type []int) as type []string in argument to strings.Join
// strings.Join()の第一引数はstring型のスライスでなければいけない
}
string型のスライスを作ってからstrings.Join()する
main.go
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
intSl := []int{1, 2, 3}
strSl := []string{}
for _, v := range intSl {
// intSlの値を文字列にしてstrSlに突っ込む
strSl = append(strSl, strconv.Itoa(v))
}
fmt.Println(strings.Join(strSl, " "))
// => 1 2 3
}
ついでに
Pythonならリスト内包表記で1行で書ける
python.py
nums = [1, 2, 3]
print(" ".join([str(num) for num in nums]))
# => 1 2 3