私はGoから始めて、Pythonから来ています。Pythonでdictに相当するものを見つけようとしています。Pythonこの:
d = {
'name': 'Kramer', # string
'age': 25 # int
}
私は最初にmap
タイプを見つけましたが、それは1つのタイプの値しか許可しません(それはints
とstrings
の両方を処理できません。このようなことをしたいときはいつでもstruct
を作成する必要がありますか?または、タイプ行方不明ですか?
すべてのヒントは大歓迎です!
基本的に問題は、実際のコードで同じマップインスタンスに異なるタイプの値を格納する要件に遭遇するのが難しいことです。
あなたの特定のケースでは、次のように構造体タイプを使用するだけです:
type person struct {
name string
age int
}
それらを初期化することは、いわゆる「リテラル」のおかげで、マップよりも難しくありません。
joe := person{
name: "Doe, John",
age: 32,
}
個々のフィールドへのアクセスは、マップを使用するよりも難しくありません。
joe["name"] // a map
versus
joe.name // a struct type
全体として、Goの問題を解決しようとするGo along の紹介本を読むことを検討してください。動的型付け言語の実用的な知識を厳密に型指定されたものなので、基本的にPythonをGoで記述しようとしていますが、これは逆効果です。
The Goプログラミング言語 で始めることをお勧めします。
Goに関する無料の本 もあります。
それはおそらく最良の決定ではありませんが、interface{}
マップがすべてのタイプを受け入れるようにします。
package main
import (
"fmt"
)
func main() {
dict := map[interface{}]interface{} {
1: "hello",
"hey": 2,
}
fmt.Println(dict) // map[1:hello hey:2]
}