使用して、モードの実装オプションをクロージャ:
メインパッケージ のインポート"FMTは、" //構造を定義 {構造体型のステュー 名前のString 年齢のint addrは文字列 } VAR( //属性のデフォルト値のStu設定 DefaultStu = {&スチューに "誰か"、名前を 年齢:0、 ADDRを: "不明"、 } ) クロージャのStu特性を備え// FUNC SetNameメソッド(文字列名)FUNC(*ステュ){ リターンFUNC(STUステュ*){ stu.Name名= } } FUNC setAge(年齢INT)FUNC( STU *){ 戻りFUNC(STU STU *){ stu.Age年齢= } } FUNC SetAddr(文字列ADDR)FUNC(* STU){ 戻りFUNC(STU STU *){ stu.Addr = ADDR } } FUNC(*ステュ)optfunc型 クロージャを返す関数として//のsetXXXパラメータは、 //例は、この例の完全な硬化特性を達成するために、パラメータとして渡さSTU NewStu(OPTS FUNCを.. .OptFunc)* {ステュ STU:= DefaultStu O、_用:範囲= OPTS { O(STU) } 戻りSTU } FUNCメイン(){ STU:= NewStu() fmt.Println(STU){//&誰か0 }不明 STU2:= NewStu(SetAddr( "湖北")、SetNameメソッド( "波")) fmt.Println( "STU2 ="、STU2){//波STU2 = 0&湖北} }