「3ステップでしっかり学ぶRuby入門」の感想・備忘録1

スポンサーリンク

書籍「3ステップでしっかり学ぶRuby入門」のまとめ。

点数

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
end

while文

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

コメント