前回の続きです。
今回は、interface、スライス、map、エラー処理、panic、recoverについて解説します!
interface
giste1476d1affd6034ebfcc9608ba237a29
8~10行目のインターフェースでEat()を実装してるのでCarlingGirlもFoodFighterもHumanとして扱える
正直Java経験者の私にはピンとこない仕様ですが慣れるしかなさそう。。。
【実行結果】
スライス
gista6f23ce501f560d94d49649526f32c3b
配列と似ているが値を参照型で保持している。
スライス式”[:]”を使えばスライスになる。
【実行結果】
map
gist8bc6953454cbbbb647327e7d6ad22044
マップの格納順は補償されない。
存在しないキーを指定してもエラーにならずnilが返る。
【実行結果】
エラー処理
gist5d34abe64c6a932296cbfe435c7b52f0
11行目にコメントしてますが、エラーは2つ目の戻り値で返ってくるそうです。
【実行結果】
panic
gistea0ca98a4d1ac0f2f19d12a739223707
panicが発生すると以降のコードは実行されません。
但し、deferはpanicが発生しても実行されます。
またdeferはそれぞれの関数の最後に実行されます。
なのでdeferにはファイルやDBのクローズ処理を記載するのがいいです。
【実行結果】
recover
gist55389539e6654d56183c35eafde4c7ce
panicが発生した時だけ処理したい場合、recoveryを使います。
【実行結果】
Gitに登録しました
前回記事のソースに追加で今回のソースもGitに登録しました。
【関連記事】
このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!
コメント