###質問したいこと
引数の順番を決める時には何か比較的浸透しているルールがあるのでしょうか?
言語ごとに同じ関数でも異なることがあるので決まった答えはないと思いますが
golangにそういったものがあれば教えていただきたいです。
###引数の順番
引数は当然複数設定することがしばしばありますが
その際、どういった値を最初に持ってくるだとかという話をあまり見ることがありません。
go
1func Join([]string,string)string
上記のようにGo言語では文字列を連結するJoin関数は配列が先に来ますが
perl
1sub join(string,[]string)
上記のようにPerlでは配列が後に置かれます。
Perlは配列の扱いが可変長引数と近く、
配列が最後に来るのは言語的な部分があるので
golangの順番が一般的にも妥当だとかもしれませんが
どちらにせよ何を基準に順番を決めているのでしょうか?
命名規則などはしばしば議論に上がりますがこの手の話は今一つ主流というか、
一般的にどう考えられているのかがつかめません。
もちろんこれは一般的な基準があるわけではないので
多少好みの問題でどちらが正しいというのはないと思いますが
言語のライブラリとしてはある程度統一しているべきだと思いますし、
そういったルールが丁寧なgolangなら尚更何か理由があると思います。
しかしEffective Goなどを見ていてもそれらしい記述は見当たりません。(見落としてるかもしれません)
一般的に、もしくはgolangにおいて、
もしそういったものがあったりするのであれば教えていただきたいです。
他の言語においてもその基準のようなものがあるのであれば参考に教えていただけると助かります。
###ありそうな?決め方
- オプションは最後
少なくともオプションに近い、あまり意識してつける必要のないものに関しては
最後に置かれるのはほとんどの言語で共通だと思います。
ただオプションだけとは限らないのでこれだけでは厳しいです。
2. オリジナルは最初?
パースをするときなど、戻り値の素材のような引数は最初が良いと思いますが
perlは逆なようです。
3. 英語の文法に合わせる
Joinであれば配列Aを文字列Bで結合するといった内容です。
golangでいえば
go
1//Join concatenates the elements of a to create a single string. The separator string sep is placed between elements in the resulting string." 2func Join(a []string,sep string)string
個人的にこれが無難な気はしますが
並びが変わるよう多少文章の構成を変えることもできるので今一つ釈然としません
###引数の役割
役割で順番を決めるなら
出力、入力、オプションとかでしょうか
しかしこれだけではいくつか被ることも十分あるのでなんともいえません。
golang以外や
個人的な基準でも良いのでいろいろ教えていただけると助かります
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/22 22:56 編集