[過去ログ] Go language part 1 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
973(1): デフォルトの名無しさん [sage] 2017/11/11(土) 07:08:21.29 ID:qi+awpQj(1) AAS
>>972972(1): デフォルトの名無しさん [sage] 2017/11/11(土) 00:39:24.57 ID:LLMRc4SD(1/9) AAS
質問です。
先日始めたばかりでデリファレンスの仕方が分からなくて困ってます。
超初歩的ですが教えてください。
コードは以下と同類です。
外部リンク[html]:go-database-sql.org
これの dest:= の部分を
th := []interface{}{ new(int), new(string), new(string)}
にして読み込んだところ、
確かにポインタのスライスになっているようなのですが、デリファレンス出来ません。
(単に書き方が分からないだけですが)
試した結果は以下です。
fmt.Println(*th[0], " ", *th[1], " ", *th[2]) // invalid indirect of th[0] (type interface {})
fmt.Println(*(th[0]), " ", *(th[1]), " ", *(th[2])) // invalid indirect of th[0] (type interface {})
fmt.Println(th[0], " ", th[1], " ", th[2]) // 0x11f09b08 0x11ea1468 0x11ea1470
fmt.Println(th) // [0x11f09b08 0x11ea1468 0x11ea1470]
よろしくお願いします。
sqlx使ってもいいのですが、そもそもデリファレンス出来ないのがよく分かりません。
Goにとっては、要素がポインタではなくてただの interface{} に見えている。
なのでデリファレンスできないというエラーになる。
方法としてあるのは、th := []*interface{}{...} にする方法。
ポインタの配列と宣言しているので、要素のデリファレンスが可能。
もしくは、要素ごとに、デリファレンスする前に、*intとかに型アサーション(ググって)をする。
その後でデリファレンスする。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.317s*