golang構造体にはデフォルト変数の機能がない
type test1 struct { a int =1 b float32 =1.0 }
のようにデフォルトで値を初期化設定をする機能がない。
このような初期化を行いたい場合は、構造体の初期化をするための関数を用意することで対応できるため、実用上、特段こまらないのだが、なぜこのような基本的な機能がないのだろう。
コンストラクタや再帰的なコンストラクタなどのc++,javaのめんどくさい仕様を 省いてシンプルな言語仕様にするためだろうか? どうやら golangの構造体はは他の言語のclassの設計思想とは大きくことなり コンストラクタ、デストラクタ、仮想メソッドetc などOOPを複雑なものにしている概念を 根こそぎ省略したシンプルな言語のようだ
ちなみに、デフォルトでは0の値で初期化される*1
package main import ( "fmt" ) type test1 struct { a int b float32 } func main() { var t1=test1{} fmt.Printf("%d \n",t1.a) fmt.Printf("%f",t1.b) }