私は非常にGoで新しく、Rubyから来ました。だから... ...異なるタイプの配列を作成する
私はそれは愚かな質問だ場合は申し訳ありません
[1, 2, "apple", true]
異なるタイプを含むどのような配列を構築することができます。
ありがとうございました。
私は非常にGoで新しく、Rubyから来ました。だから... ...異なるタイプの配列を作成する
私はそれは愚かな質問だ場合は申し訳ありません
[1, 2, "apple", true]
異なるタイプを含むどのような配列を構築することができます。
ありがとうございました。
これは、スライスをinterface{}
タイプにすることで可能です。例:
func main() {
arr := []interface{}{1, 2, "apple", true}
fmt.Println(arr)
// however, now you need to use type assertion access elements
i := arr[0].(int)
fmt.Printf("i: %d, i type: %T\n", i, i)
s := arr[2].(string)
fmt.Printf("b: %s, i type: %T\n", s, s)
}
詳しくはhereを参照してください。
"タイプスイッチのアクセスエレメントを使用する必要があります。"タイプスイッチ "はありません。タイプアサーションです。 –
@Tim:fixed。ありがとう – abhink
正確に言えば、それは同じタイプのスライスです - interface {}、異なる型の要素を持つ配列ではありません。 – Uvelichitel
Goでこれを行う方法はありますが、有効なユースケースがあるかもしれませんが、私はこれをしないことをお勧めします。 Rubyの知識と経験をGoに翻訳しようとしているようですが、おそらくこれは良い考えではありません。 GoのタイプはRubyとは異なり、思考やプログラミングの方法が異なります。 – Carpetsmoker
@Carpetsmokerありがとうございます、私はあなたが意味するものを参照してくださいが、私は知りたいと思っている移動能力 –
あなたは新しいに移動した場合:たぶん "適切な"、安全かつ慣用的に固執し、宇宙は数ヶ月間未踏のままですか? – Volker