LoginSignup
0

More than 3 years have passed since last update.

railsチュートリアルブロックについて

Posted at

{}のところがブロックという
配列.each do {|変数|処理}

end
配列の要素を先頭から一つずつ||内の変数に入れて、{}に書いた処理をする

(1..5).each { |i| puts 2 * i }
2
4
6
8
10
=> 1..5

上のは下みたいにも書ける

(1..5).each do |i|
?> puts 2 * i
end
2
4
6
8
10
=> 1..5


(1..5).each do |number|
?> puts 2 * number
puts '--'
end
2

--
4

--
6

--
8

--
10

--
=> 1..5


3.times { puts "Betelgeuse!" } # 3.timesではブロックに変数を使っていない
"Betelgeuse!"
"Betelgeuse!"
"Betelgeuse!"
=> 3

配列を一つずつ変数に入れて{}内の処理をするmapメソッドは配列で返されてくる

(1..5).map { |i| i*2 } # 「*」記法は冪乗 (べき乗)
=> [1, 4, 9, 16, 25]
%w[a b c] # %w で文字列の配列を作成
=> ["a", "b", "c"]
%w[a b c].map { |char| char.upcase }
=> ["A", "B", "C"]
%w[A B C].map { |char| char.downcase }
=> ["a", "b", "c"]


shuffleメソッドについて

('a'..'z').to_a # 英小文字を列挙した配列を作る
=> "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
.to_a.shuffle # シャッフルする
=> "c", "g", "l", "k", "h", "z", "s", "i", "n", "d", "y", "u", "t", "j", "q",
"b", "r", "o", "f", "e", "w", "v", "m", "a", "x", "p"
.to_a.shuffle[0..7] # 配列の冒頭8つの要素を取り出す
=> "f", "w", "i", "a", "h", "p", "c", "x".to_a.shuffle[0..7].join # 取り出した要素を結合して1つの文字列にする
=> "mznpybuj"

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0