Open6
Ruby学習メモ
..
)
範囲 ((0..9).to_a # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
配列のインデックスに使用することができる。
a = %w[foo bar baz quux] # ["foo", "bar", "baz", "quux"]
a[0..2] # ["foo", "bar", "baz"]
インデックスに-1を使うことができる
a[1..-1] # ["bar", "baz", "quux"]
ブロック
>> (1..5).each { |i| puts 2 * i }
2
4
6
8
10
do end
でも表現できる。
>> (1..5).each do |i|
?> puts 2 * i
>> end
2
4
6
8
10
map
メソッド
配列や範囲オブジェクトの各要素に対して処理を実行して結果を返却する。
>> %w[A B C].map { |char| char.upcase }
=> ["A", "B", "C"]
省略記法は以下。
>> %w[a b c].map(&:upcase)
=> ["A", "B", "C"]
ハッシュ
他の言語では「連想配列」と呼ばれていることもある。
user = {}
user['firstname'] = 'Michael'
user['lastname'] = 'Hartl'
user
=> {"firstname"=>"Michael", "lastname"=>"Hartl"}
複数のキーと値をまとめて定義することもできる。
>> user = { 'firstname' => 'Michael', 'lastname' => 'Hartl' }
=> {"firstname"=>"Michael", "lastname"=>"Hartl"}
ハッシュにはシンボルをキーとして使うことが一般的であるらしい。以下の記法もある。
user = { :firstname => 'Michael', :lastname => 'Hartl' }
user = { firstname: 'Michael', lastname: 'Hartl' }
どちらも同じハッシュになる。(2つ目はJavaScriptでの記法に似ている)
クラス
new
メソッドによってインスタンスを生成する。
>> s = String.new('foobar')
=> "foobar"
>> s.class
=> String
すべてのクラスはBasicObject
クラスを継承している。
Rubyはあらゆるものがオブジェクトである。
※nil
はNilClass
、シンボルはSymbol
クラスのインスタンスである。
Rubyでは組み込みの基本クラスの拡張が可能。(例えば、Stringクラスにメソッドを追加することができる)
ただし、真に正当な理由がない限りは追加しないほうが良い。
attr_accessor
クラスの属性(attribute)にアクセサを追加するメソッド。
class User
attr_accessor :name
end
Getter, Setterが追加された状態になる。