Go's Declaration Syntax
さて
週末いかがお過ごしでしょうか?
自分?
家事したりドライブしたり
…
昼寝したり
=====○)д`);.・;゛;ブッ
…
さ、さて
Goの勉強を適度にしていると、プロフィールにも書いてありますが、
休日に「A Tour of Go」を再び読んでいました。
読んでいた人にはタイトルが何を示していたのか、お分かりだと思いますが、
タイトルはGoの構文についての記事です。
日本語版は有志の方が翻訳されていますね。ありがとうございます。
Goは比較的新しめの言語であるため、
既存の言語の不便な所を改善してあるところがあることが多いです。
こと、今回のGoの構文については記事にもある通り、
Cと比べてありますね。
C言語の場合は
戻り値の型 関数名(型 変数名,・・・)
となっております。
記事内では複雑になると、ごちゃごちゃしてわけがわかないと書かれておりますが、
その理由は動線といいますか、
関数を解釈しようとするとき、右や左に行ったり来たりする、ということでしょうか。
例えば…
string main(int a(int x, int y), string tmp[10])
「戻り値はstring型で名前がこれ、引数は…
ふむふむ、int型が2つを引数に持つ関数と、string型の配列の2つなんだな。
int型2つの関数の戻り値は…int型か、
えーとつまり、一番上の関数はintとstringの配列を引数に持つ関数か。
戻り値の型はなんだっけ…そうそうstringか」
左から右に読んでいったつもりが、
思考をまとめるときに、左にまた読まなければいけないことになりますね。
スパイラル状とも呼ぶそうです。
鳴門の渦巻きお勧めです。
…
Goでは
func 関数名(変数名 型,・・・) 戻り値の型
という風ですね。
基本的に情報が右に集中しているので、左から右に読みながら
最後には一番上の関数の戻り値の型が記述してあることになるので、
本当に読んだまま解釈できるようになっております。
右から左じゃねぇか!
初めてGoを学び始めたとき、これすごい読みやすかった記憶があります。
それただC言語になれていないだけじゃないの?
=====○)д`);.・;゛;ブッ
…
今回の記事でポインタの話が出てきたので、
明日はそれを書こうかなと思います。
それでは。