ProgateでRubyを学んでみた【コース3】

Progate Rubyコース3

Progate Rubyコース1

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はなんとメソッドのみでした。が条件式を戻り値にしたり一風変わったことがでてくるのでちょっと難しかったです。今回学んだことでとくに注意点はなかったと思いますが、条件分岐の条件式で()がなかったり、メソッド定義のときに波括弧をつかわなかったりするので、強いて注意点をあげるならそのへんでしょうか。

次の記事はProgateでRubyを学んでみた【コース4はクラスが中心】 | 初心者のプログラミング