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)
}

*1:golangでは変数が明示的に値を初期化しなかった場合,ゼロ値というデフォルト値で初期化される。ゼロ値は型ごとに決まっており,たとえばintのゼロ値は0である。