Progate Rubyコース3
ProgateのRubyコース1は基本的な文字列操作や条件分岐が中心で、コース2のほうは配列とハッシュ、繰り返しなどが中心でした。Progateはさらっとこのあたりをおえるかんじですがじっくり学びたいという方は本を買ってみてもよいかもしれません↓
筆者は有料会員になっているのでちょっとわからないのですが、おそらくコース2の途中あたりから有料になるかと思います。やりたい人は980円はらって受講してもよいかもしれませんね。受講といってもスライドの指示どおりに自分で入力していくだけです。
それでは備忘録てきにコース3でどんなことをやるのかかいていこうと思います。
メソッド
rubyのメソッドはfunctionでも void でもなく defですね。 そしてちょっと変わってるのがメソッドよびだしのときに、()かっこをつかわないことですね。そしてメソッド定義のときも endキーワードがあるので{}なみかっことかを使わないですね
def hello puts "hello world" end puts hello
引数ありのメソッド
引数ありのメソッドは def メソッド名(引数)のように書きます。メソッドの引数はメソッドの中でしかつかえないというきまりがあります。
def introduce(name) puts "こんにちは" puts "私は#{name}です" end puts introduce("どうも");
複数の引数をもつメソッドは↓
def print_info(item, price) puts "わんこでんきへようこそ!" puts "今日は#{item}がセール中で#{price}円です!" end puts print_info("SDカード", 1200)
戻り値ありのメソッド
戻り値ありのメソッドは returnで戻り値をうけとることができます
def discount(price) return price / 2 end puts "テレビがセール中です!" half_price = discount(15000) puts "特別価格で#{half_price}円です"
戻り値が条件式のメソッド
条件式を戻り値として返すことができるメソッドはメソッド名の末尾に?をつける慣習があるようです。 三項演算子かなにかと思ってしまいましたが、実際にはただのメソッド名のようです。以下は条件式を返すメソッドを if文に使用したものです
sipping_free?(price) は shippin_free?までがメソッド名で (price)が引数ということですね。
def shipping_free?(price) return price >= 5000 end if shipping_free?(3000) puts "5000円以上のお買い上げなので送料はいただきません" else puts "追加で送料をいただきます" end
return文の途中終了
以下の構文はprice変数が5000以上のときにreturnで終了しますがpriceが5000以上じゃなかったときはreturn price + 500をして終了する構文です
def price_with_shipping(price) if price >= 5000 return price end return price + 500; end
キーワード引数をもつメソッド
メソッドの引数が多くなってくるとわかりにくくなるので、メソッド定義とメソッド呼び出しのときにラベルをつけてやるようなイメージ、書き方はメソッド定義のときは def buy(item:, price:)のようにかく
呼び出すときはラベルをつけるイメージでbuy(item:”テレビ”, price:15000)のように書く。
def buy(item:, price:, count:) puts "#{item}を#{count}台のお買い上げです" puts "合計金額は#{price * count}円です" end buy(item:"テレビ", price:15000, count:2)
Progate Rubyコース4まとめ
ProgateのRubyコース4はなんとメソッドのみでした。が条件式を戻り値にしたり一風変わったことがでてくるのでちょっと難しかったです。今回学んだことでとくに注意点はなかったと思いますが、条件分岐の条件式で()がなかったり、メソッド定義のときに波括弧をつかわなかったりするので、強いて注意点をあげるならそのへんでしょうか。
コメント