はじめに
piazaの問題で躓いてしまったので、学習したことをアウトプット!
コード
qiita.rb
nums = gets.split(' ').map(&:to_i)
#splitで(' ')で区切って文字列を分割し配列を作る。
#mapで区切られたそれぞれの文字列を数値化する。
result = nums[0] + nums[1]
# 配列内の文字列を足す。
puts result
こっちの方がシンプル
qiita.rb
num1, num2 = gets.split.map(&:to_i)
puts num1 + num2
splitメソッドとは
Stringクラスで用意されている文字列を指定の文字や正規表現を使って分割するメソッド。
split.rb
split([sep[, limit]])
# 第一引数に指定したパターン(文字列や正規表現)に従って、文字列も分割し配列にする
# 第二引数を指定して分割数を指定する
# 引数を指定しない場合にが、空白文字列で分割する
str = "Tokyo,Osaka,Nagoya"
puts str.split(",", 2)
=> ["Tokyo", "Osaka,Nagoya"]
mapメソッドとは
配列の要素の数だけブロック内の処理を繰り返し、結果として作成された配列を返すメソッド。
map.rb
a1 = [100, 200, 300]
a2 = a1.map { |x| x * 2 }
puts a2
=> [200, 400, 600]
#メソッドを用いるときは以下の省略形でもOK
オブジェクト.map(&:メソッド名)
a1.map(&:to_s)
=> ["100", "200", "300"]
参考資料
https://uxmilk.jp/21695
https://www.javadrive.jp/ruby/string_class/index12.html