14975


Goと使っていると初期化以前にnil判定をするとエラーが出てしまいます。

[code]

    //Error
    var a Object
    if a == nil{
    
    }
    
[/code]

そこで質問なのですが、初回参照時のみ初期化してあとはそのオブジェクトを使いまわすような変数を扱うとき、どのように初回参照を検出すればいいのでしょうか。  
1つ考えられたのはフラグを使って、初回参照のの初期化時にそのフラグを立て、次の参照時にはそのフラグを確認して立っていれば初期化せずにそのまま返す。

[code]

    var(
        a Object
        flag bool
    )
    
    if flag == true{
        return a
    }else{
        a = Object{}
        flag = true
        return a
    }
    
[/code]

このやり方以外になにかいい方法はありますか。


CC BY-SA 3.0
2015-08-28T14:36:03.447
14973
2015-08-28T15:05:02.257
7232
question
go
Goの初期化判定


変数 a を Object 型へのポインタに変更してはいかがでしょうか。

[code]

    var a *Object
    
    if a == nil {
      a = &Object{}
    }
    
[/code]


CC BY-SA 3.0
2015-08-28T15:05:02.257
14975
2015-08-28T15:05:02.257
14973
answer