# hello.rb
puts("Hello, World!")
$ ruby hello.rb
#=> Hello, World
この本で Ruby に入門しました。
およそ 200 ページという薄さで必要な内容が纏まっているスゴイ本
(Ruby 1.8, 1.9 対応)
irb を用いると、その場で対話的に Ruby
プログラムを実行することができます。便利。
$ irb
irb(main):001:0> 1+1
=> 2
式の値をちょっと見てみたい時に、irb と共に重宝します。
p "foo" #=> "foo"
p 123 #=> 123
p 1 == 1 #=> true
必要
a = 1
b = "str"
c = [a, b, 3, "string"] #=> [1, "str", 3, "string"]
p c[0] #=> 1
p c[1] #=> "str"
p c[-1] #=> "string"
p c[0..1] #=> [1, "str"]
c[0] = 9 #=> 9
c[0] #=> 9
必要
foo = ["a", "b", "c"]
foo.each do |item|
print item + " "
end
#=> a b c
# 配列の各々の要素についてブロックを評価して、それらの評価値を纏めて新しい配列を構築します
foo.map{|f| f.upcase} #=> ["A", "B", "C"]
# &: とかググり難い
foo.map(&:upcase)
# ソート
bar = [3, 2, 5, 4, 1]
bar.sort #=> [1, 2, 3, 4, 5]
必要
months = { Jan: 1, Feb: 2, Mar: 3 }
months[:Feb] #=> 2
必要
1 == 1
1 ~= 1
1 < 1
1 <= 1
# 宇宙船演算子
1 <=> 2 #=> -1
1 <=> 1 #=> 0
3 <=> 2 #=> 1
a = 2
"a = #{a}" #=> "a = 2"
"a + 2 = #{a + 2}" #=> "a + 2 = 4"
検索して調べ辛いと思うシリーズ
%w(foo bar baz)
#=> ["foo", "bar", "baz"]
検索して調べ辛いと思うシリーズ
s = <<"EOS"
sample
text
hello
EOS
#=> "sample\ntext\nhello\n"
必要。説明は端折ります。
必要
if foo
...
elsif bar
...
elsif baz
...
else
...
end
unless foo
...
end
case や while
break, next
1.upto(3) do |i|
next if i == 2
loop do
puts "break するよ"
break
end
# break でここに脱出するよ
puts i
end
必要そう
begin
do_something # 例外を生じる可能性のある処理
rescue => error
puts error.message
end
必要
def sum(x, y)
x + y
end
sum(1, 2) #=> 3
必要。クラス名は大文字で始まる。
class Foo
def initialize(bar, baz) # 多言語で言うコンストラクタのようなもの
@bar = bar # @ ではじまる名前の変数はインスタンス変数
@baz = baz
end
attr_accessor :bar, :baz # 属性への getter, setter を定義する
end
foo = Foo.new(1, 2) # インスタンス化
p foo.bar #=> 1
p foo.baz #=> 2
class Duration < Range
...
end
インスタンス化できないクラス のようなもの
module Foo
def self.hello
puts "hello"
end
end
Foo.hello #=> hello
リファレンスマニュアルを読む時には知っておいた方が良い
(# と . の違い)
https://docs.ruby-lang.org/ja/latest/doc/index.html
おすすめ
感謝の Rails Tutorial 周回で強くなる。祈る時間が増える。
これは私は入門の時期にやった訳ではない。
比較的最近になってから読んだ。
rails tutorial が難し過ぎると感じて周りに聞ける人もいない状況などでは、Rails の教科書がとても良さそうに見える。
“はじめに” で書かれているとおり、Rails の教科書を読み進めると Rails Guides や Rails Tutorial を読み進める為の基礎知識が身につきます。というのが達成されそう。