go言語の並列処理(並行処理?)を利用して遅延更新のようなことは可能でしょうか?当方goroutine初心者です。

やりたいことは以下です

  • ある関数の中でSampleObjectという構造体を返す
    • SampleObjectの中身は後の処理で確定するのでそれまで設定しない
    • SampleObjectを作った関数とは全然別の関数、スコープで中身を更新する

擬似コード的に書いてますので間違いあればご指摘ください。

// SampleObject内に受信用のchannelを設定して関数の外でSampleObjectの中身を更新する
func UpdateStructLater() SampleObject {
    return &SampleObject{make(chan, string)}
}

sObj := UpdateStructLater()
someSuperProcedure()
// sObj == "Hello" みたいな