Rubyのキーワード引数というヤツ
Rubyのキーワード引数というヤツ
こんばんは、葛の葉です。
お勉強したまへ、というお達しがありました。あっふーん…(達し)
というわけで最近はこの書籍を使って勉強しております。
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
posted with amazlet at 18.11.01
キーワード引数というヤツ
なんか知らんけど関数を作る時に引数名を作ることが出来るようです。へぇ。Pythonにもあったねたしか。
// Pythonだと… def animal(momonga, dog='ももちゃん', cat='めけめけ王子三世'): return cat print(animal('neko')) >>>めけめけ王子三世
cat = 'めけめけ王子三世'なのわかりやすい。
// Rubyだと… def animal(momonga, dog: 'ももちゃん', cat: 'めけめけ王子三世' ) cat end p(animal('neko')) >>"めけめけ王子三世"
返り値は:cat
じゃなくてcat
にしないと駄目?:cat
じゃないの?
def animal(momonga, dog: 'ももちゃん', cat: 'めけめけ王子三世' )
は省略形で、正しく書くならdef animal(momonga, {:dog => 'ももちゃん', :cat => 'めけめけ王子三世'}
こうなんじゃないか?やってみよう。
def animal(momonga, {:dog => 'ももちゃん', :cat => 'めけめけ王子三世'} cat end p(animal('neko')) sand.rb:9: syntax error, unexpected { def animal(momonga, {:dog => 'ももちゃん', :c... ^ sand.rb:11: syntax error, unexpected keyword_end, expecting end-of-input (Google翻訳[2018/11/2])sand.rb:11:構文エラー、予期しないkeyword_end、入力の終了を予期する
わがんね😭
所謂シンボル
ではなくて、ブロック
としてみなされているのかな?
この本については後ほどレビューしてみます
先程記載した本派中々面白いです。5章まで読みましたが、テスト駆動開発で行っていますので、前回、PythonでUnittestについて書いたのですが、より理解が深まったと思いました。この本のテストはRubyで書かれているので、Pythonで書き直してみるのも楽しいかも知れませんね。それと、Rubyはあまりやったことなかったので、知らないところはやはり出てきました。が、親切に書いてくれているので、Rubyちょっとしか触ったこと無いって人にも向いていると思います。