趣味で、Golang + EchoでWebサイトのAPIを作ろうとしているのですが、
表題の通り、引数として受け取る初期値の設定について調べています。
スクリプト言語だと大体or演算子で設定すると思うのですが、
(値がfalse相当の場合に誤判定されてしまう欠点はありますが)
Python
1page_no = requests.get('page_no') or 1 2# dictなら 3page_no = requests.get('page_no', 1)
Perl
1my $page_no = $q->param('page_no') || 1;
Golangの場合、検索すると初期値に関しては「予め構造体を作りコンストラクタで定義する」という手法が出てくるのですが、記述する場所が離れているためどうもわかりにくい気がしています。
Go
1type Param struct { 2 PageNo int 3} 4func NewParam (pageNo int) *Param { 5 p := new(Param) 6 return p 7}
単純に、変数で初期値を設定する手法はないのでしょうか。
すみません、質問が間違っていました…。
「あるパラメーターを受け取る時、その中身がNilだった場合に初期値を設定する定番の方法」
があれば知りたいです。
普通に考えると以下のようになりますが、パラメーターが複数あった場合に冗長になる気がしています。
Go
1if param1 == Nil { 2 param1 = defaultValue1 3} 4if param2 == Nil { 5 param2 = defaultValue2 6} 7if param3 == Nil { 8 param3 = defaultValue3 9}
一行で済むPythonのor構文的な物か、他に書き方が無いのかと思って投稿しました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/25 09:45