当方Goの勉強をしている者ですが、
Go言語の文法に関して、不明確な点が一つあります。
interface{}型に関してなのですが、
database/sqlなど、Goの多くのパッケージ、フレームワークの関数、メソッドで引数にinterface{}型をとるものを多く見かけます。
(echoフレームワークのContextインターフェースの各メソッドなど)
こういったinterface{}型の引数には、値を渡してもポインタを渡しても良いものなのでしょうか?
例えば、echoフレームワークでContextインターフェースのBindメソッドを使う時、
params := &ExampleStruct{} echo.Context.Bind(params)
となると思うのですが、このparamsが構造体のスライスであるときには
params := []ExampleStruct{} echo.Context.Bind(params)
となるのでしょうか?
またparamsが単一の構造体である時でも
params := ExampleStruct{} echo.Context.Bind(params)
のようにアドレスでなく値を引数に渡すことでも同様に正常に処理されるのでしょうか?
説明がわかりづらく恐縮ですが、回答よろしくお願いいたします。
不明点等あればご質問ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。