点数
86点
感想
とてもよかった。 足りない部分もあるが、入門としてはいい本だと思う。
主な内容
コマンドラインでの実行
- ファイルの実行ruby ファイル名(Windowsの場合:ruby -Ku ファイル名)
- コードの実行ruby -e 'puts 100'
- 対話モードirb
文字列内の式展開
- シングルクォート
 展開なし
- ダブルクォート
 改行コードや#{式}が展開される
 例)puts "#{1+1}"
コメント
- 単一行
 #
- 複数行
 =beginと=endで囲む
 ※複数行コメントは使わないのが慣例
putsメソッドとpメソッド
改行コード付きで出力するメソッド。
- puts
 型が意識されない(‘1’は1になる)。
 戻り値はnil。
- p
 型が意識される。
 戻り値は出力内容。
 制御文字はそのまま出力。
 デバッグ向け。
classプロパティ
型名が格納されている。
例)puts 1.class⇒Integer
データ型
すべてがオブジェクト。
Integer,Float,String,Class,Hash,Array,TrueClass,FalseClass,NilClass
文字列連結
例)puts 'aaa' + 'bbb'
配列
- 定義arr = ['あい', 'うえ', 'お']またはArray.newまたはArray.new サイズ
- 追加arr.push('か')またはarr << 'か'
- 削除arr.delete_at(2)またはarr.delete('お')
ハッシュ
- 定義arr = {'name' => 'kimura', 'age' => 38}またはHash.new
- 追加arr['sex'] = 'man'またはarr.store('sex', 'man')
- 削除arr.delete('age')
 ※キーを指定
キーには文字列ではなくシンボルを使うことも可能
- 定義arr = {:name => 'kimura', :age => 38}またはarr = {name: 'kimura', age: 38}
- 追加puts arr[:name]
- 削除arr.delete(:name)
メソッドの最後の引数がハッシュの場合は括弧を省略することができる
set_user(first_name: "Taro", last_name: "Yamada")
%記法
配列を省略して定義することができる。
- %w
 文字列(%Wは式展開あり)
- %i
 シンボル(%Iは式展開あり)
例)animals = %w(dog cat)
※カンマ不要、クォーテーションで囲まなくてよい
if文
if num == 1 then
    p '1です'
elsif num == 2 then
    p '2です'
else
    p '1でも2でもないです'
end- elseifではなくelsifなので注意
- thenは省略するのが慣例
- 条件文が1つの場合は後置if/unlessを使うべき
- !ifではなくunlessを使うべき
case文
case num
when 1 then
    p '1です'
when 2 then
    p '2です'
else
    p '1でも2でもないです'
end- thenは省略するのが慣例
- 式は文字列でもOK
後置if/unless
処理が1行の場合は、if句を後に書くことができる。
(可読性が上がるので、後置ifを使うべき)
 例)puts 'over 100' if num > 100
timesメソッドでループ
Integerクラスのメソッド。
10.times do | i |
    puts i
end
# 0〜9が出力されるdo~endはブロックに書き換え可能
10.times { | i |
    puts i
}※「オブジェクト.メソッド名」形式の場合のみ
 ⇒for文やwhile文は不可
eachメソッド
# 配列の場合
[1, 2, 3].each do |val|
    puts val
end
# ハッシュの場合
 {'name' => 'suzuki', 'age' => 26}.each do |key, val|
    puts key + ':' + val.to_s
endwhile文
i = 0
while i < 5 do
    i += 1
    if i == 3
        next
    end
    puts i.to_s + 'です'
    sleep 1
end
# doは省略可能for文
for str in ['あああ', ’いいい', ’ううう’] do
    puts str
end
# doは省略可能upto, downto, stepメソッド
Integerクラスのメソッド。
3.upto(7) do |num|
  puts("num = " + num.to_s)
end
3.step(11, 2) do |num|
  puts("num = " + num.to_s)
end
