第4章の備忘録
##環境
Rails 6.0.3
Ruby 2.6.3
##目次
1 配列・メソッド
2 ブロック
3 ハッシュ
4 シンボル
5 CSSの読み込みを解読
###1 配列・メソッド
####1.1 splitメソッド
文字列を配列に変換することが可能
# デフォルトは空白で区切る
>> "foo bar baz".split
=> ["foo", "bar", "baz"]
# 区切る文字を指定することが出来る
>> "fooxbarxbaz".split('x')
=> ["foo", "bar", "baz"]
####1.2 インデックスに−1を使ってみる
配列のインデックスに-1
を指定すると、配列の最後の要素を取得することが出来る。
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.last
=> 17
>> a[a.length - 1]
=> 17
>> a[-1]
=> 17
####1.3 empty?メソッド
空かどうか調べることが出来る
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.empty?
=> false
####1.4 include?メソッド
指定した値が含まれているか調べることが出来る
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.include?(42)
=> true
####1.5 sortメソッド
配列を昇順(小さい順)に並べ替える
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.sort
=> [8, 17, 42]
####1.6 reverseメソッド
逆順に変更する
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.reverse
=> [17, 8, 42]
####1.7 shuffleメソッド
ランダムな並びに変更
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.shuffle
=> [8, 42, 17]
####1.8 各メソッドに!
を付ける
メソッドを使用した値自体も変更させる
>> a = [42, 8, 17]
=> [42, 8, 17]
>> a.sort
=> [8, 17, 42]
>> a
=> [42, 8, 17] # a自体は変更されていない
>> a.sort!
=> [8, 17, 42]
>> a
=> [8, 17, 42] # a自体も変更される
####1.9 push( < )メソッド
配列の最後に要素を追加する
>> a.push(6)
=> [42, 8, 17, 6]
>> a << 7
=> [8, 42, 17, 6, 7]
####1.10 joinメソッド
splitメソッドの逆。配列を文字列に変換
>> a = [42, 8, 17, 6, 7, "foo", "bar"]
=> [42, 8, 17, 6, 7, "foo", "bar"]
>> a.join
=> "4281767foobar" # 連結
>> a.join(',')
=> "42,8,17,6,7,foo,bar" # 間にカンマを挟んで連結
####1.11 to_aメソッド
配列に変換する
0..9 : 9を含む
>> (0..9).to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
###2 ブロック
>> (1..5).each do |i|
?> puts 2*i
>> end
2
4
6
8
10
=> 10
上のコードのように do~endで囲むとブロックになる
ブロック内が複数行になる場合はこちらの方が主流らしい。
###3 ハッシュ
ハッシュは配列と違って、
・ インデックスに整数値以外が使える(そのハッシュのインデックスをキーと呼び、それに対応するものが値)
・ ハッシュ内の要素の並び順が保証されない
###4 シンボル
Railsでは文字列よりシンボルが使われる。
文字列との違いはクォートで囲まず、コロンが前におかれる。
ハッシュではシンボルをキーとして使うことが一般的。
また、=>
はハッシュロケットと呼ばれ、下のコードのように書き換えが可能。
{ :name => "Test Name" }
{ name: "Test Name" }
###5 CSSの読み込みを解読
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track': 'reload' %>
このコードを理解するためには、
・ Rubyでは丸カッコを使用しなくても構わない
・ ハッシュがメソッド呼び出しの最後の引数の場合、波カッコ省略可能
を把握することが必要。よって、
<%= stylesheet_link_tag (
'application',
{ media: 'all', 'data-turbolinks-track': 'reload' }
) %>
となり、引数は2つであることが判明する。
最初の要素はメディアタイプを指定、
次の要素はturbolinks機能をオンに設定している。
turbolinks : ページ遷移を高速化するライブラリ。Rails4から追加