- Ruby の概要
- 記法等
- 基礎 / リテラル / 変数と定数
- 演算子式 / 制御構造
- クラスとメソッド定義
Matz氏により1993年に公開
Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ
参考:[国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】 | Find Job ! Startup](http://www.find-job.net/startup/architecture-2013)
MRI(Matz' Ruby Implementation)
Matz氏によって開発されてる、C言語で実装されたRubyの公式処理系。
CRubyとも呼ばれる。
JRuby / IronRuby / MacRuby / Rubinius / MagLev / Cardinal / Ruby.NET / XRuby / HotRuby
関連: mruby / RubyMotion
参考: [Ruby処理系の概要](http://www.ruby.or.jp/ja/tech/install/ruby/implementations.html)公式 https://www.ruby-lang.org/ja/
日本Rubyの会(Rubyist Magazine) http://magazine.rubyist.net/
リファレンス・マニュアル http://docs.ruby-lang.org/ja/
人気のgemがジャンルごとに一覧できる
https://github.com/bbatsov/ruby-style-guide
http://www.ruby.or.jp/ja/tech/development/ruby/050_coding_rule.html
rubyらしいコードを書くために :)
# hello.rb
puts "hello, ruby!"
- プログラムの拡張子は .rb
- 行末には ; いらない。改行が文末を表す
$ ruby hello.rb
hello, ruby!
ローカル変数 : 小文字または _ ではじまる
インスタンス変数: @ ではじまる
クラス変数 : @@ ではじまる
グローバル変数 : $ ではじまる
定数 : 英大文字
参考: Ruby 2.1.0 リファレンスマニュアル > [変数と定数](http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2fvariables.html)[1, 2, 3]
%w(a b c)
{ 1 => 2, 2 => 4, 3 => 6}
{ a:"A", b:"B", c:"C" }
:lvar
:+
1+2*3/4 # * / % が + 0 よりも優先度高い
代入
foo = bar # 代入
foo, bar, baz = 1, 2, 3 # 多重代入
1..20
条件演算子
obj == 1 ? foo : bar
if age >= 12 then
print "adult fee\n"
else
print "child fee\n"
end
for i in [1, 2, 3]
print i*2, "\n"
end
begin
raise "error message"
rescue => e
p $!
p e
end
# => #<RuntimeError: error message>
#<RuntimeError: error message>
foo.bar()
foo.bar
bar()
print "hello world\n"
Class.new
Class::new
class Foo < Super
def foo(a, b) # 引数は括弧を省いてdef foo a, bとも
a + 3 * b
end
end
module Foo
def hello # 引数のないメソッド。
puts "Hello, world!"
end
end
https://gist.github.com/luckypool/95286c58d53d4c60a985
$ git clone https://gist.github.com/95286c58d53d4c60a985.git hoge
$ cd hoge
$ pry
[1] pry(main)> require './hoge.rb'
=> true
https://gist.github.com/luckypool/95286c58d53d4c60a985
# (1)
CONST_VAR
# => ?
# (2)
instance = Hoge.new 'hoge'
instance.foo
# => ?
# (3)
Hoge.foo
# => ?
https://gist.github.com/luckypool/95286c58d53d4c60a985
# (4)
instance.bar do |a,b,c,d|
[a,b,c,d]
end
# => ?
# (5)
sub = Fuga.new 'fuga'
sub.foo
# => ?
# (6)
Hoge.bar do |a,b,c,d|
[a,b,c,d]
end
# => ?
- Ruby の概要
- 記法等
- 基礎 / リテラル / 変数と定数
- 演算子式 / 制御構造
- クラスとメソッド定義