発生したエラー
Go言語でstring
型の値を保持した配列をカンマ区切りで結合したい時に、以下のエラーが発生
package main
import "fmt"
import "strings"
import "strconv"
func main(){
var numbers[1000]string
for i := 0; i < 1000; i++ {
numbers[i] = strconv.Itoa(i+1)
}
//誤り
fmt.Println(strings.Join(numbers, " "))
}
# command-line-arguments
./Main.go:12:29: cannot use numbers (type [1000]string) as type []string in argument to strings.Join
解決策
strings.Join
の引数はSlice
であるため、Array
型の変数を引数に取ることができない。
そのため、ArrayをSliceに変換してJoinして出力する。
package main
import "fmt"
import "strings"
import "strconv"
func main(){
var numbers[1000]string
for i := 0; i < 1000; i++ {
numbers[i] = strconv.Itoa(i+1)
}
//誤り
fmt.Println(strings.Join(numbers, " "))
//正しい例
fmt.Println(strings.Join(numbers[:], " "))
}