[過去ログ] Go language part 1 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
595: デフォルトの名無しさん [sage] 2016/06/11(土) 12:57:03.40 ID:5N4sydIU(1/3) AAS
>>594594(2): デフォルトの名無しさん [sage] 2016/06/11(土) 02:54:26.06 ID:ncrPm/bC(1/3) AAS
とりあえずは即時関数で。
return &Profile{
mine: func() (m MyProfile) { m.SetProfile(arr["me"]); return }(),
yours: func() (y YourProfile) { y.SetProfile(arr["you"]); return }(),
}
ありがと
本当に助かりました
自分には浮かばない発想でした
しかし、一つ聞きたいのは、
func NewProfile(arr map[string]map[string]interface{}) *Profile {
var m MyProfile
var u YourProfile
return &Profile{
mine: m.SetProfile(arr[
596(1): デフォルトの名無しさん [sage] 2016/06/11(土) 12:58:26.45 ID:5N4sydIU(2/3) AAS
>>594
ありがと
本当に助かりました
自分には浮かばない発想でした
しかし、一つ聞きたいのは、
func NewProfile(arr map[string]map[string]interface{}) *Profile {
var m MyProfile
var u YourProfile
return &Profile{
mine: m.SetProfile(arr['me']),
yours: u.SetProfile(arr['you']),
}
}
はダメなのに、なぜ
func NewProfile(arr map[string]map[string]interface{}) *Profile {
return &Profile{
mine: func() (m MyProfile) { m.SetProfile(arr['me']); return }(),
yours: func() (u YourProfile) { u.SetProfile(arr['you']); return }(),
}
}
は可能なのかな、と
SetProfile()自体が関数なのに、なぜわざわざ無名関数使って内包したSetProfile()を呼び出さないと上手くいかないんですかね?
599: デフォルトの名無しさん [sage] 2016/06/11(土) 13:44:39.08 ID:5N4sydIU(3/3) AAS
>>598598(1): デフォルトの名無しさん [sage] 2016/06/11(土) 13:26:31.32 ID:ncrPm/bC(3/3) AAS
>>596
m.SetProfile(arr['me'])
この場合、副作用だけ(オブジェクトに値がセットされるだけ)なので、
return m とする(オブジェクトを返す)必要があるのです。
とは言うものの、SetProfile はメソッドではなく通常の関数でも良いのでは?
と思ったので 外部リンク:ideone.com ではそうしています。
なるほど、良く分かりました
別の方法も教えていただきありがとうございました
勉強になりました
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.171s*