Skip to content

Instantly share code, notes, and snippets.

@m-mizutani
Created September 8, 2013 03:55
Show Gist options
  • Save m-mizutani/6481720 to your computer and use it in GitHub Desktop.
Save m-mizutani/6481720 to your computer and use it in GitHub Desktop.
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
## 実行方法
# /usr/bin/env rubyと書く文化と/usr/bin/ruby と書く文化の両方があるらしい。
# /usr/bin/rubyと書いてもパス検索されるのでほとんどの環境では
# 両方動くらしいという記述を見かけた。未検証
puts '--- Syntax --------------'
# - 終端記号なしで基本1行1ステートメント、文法上、インデントの制約は無い
# - 関数、繰り返しなどのブロックでは最後に end と書く
puts "yes!\n"
puts '--- 変数 --------------'
# - 動的型付け言語
# - 基本データ側は「数値」と「文字列」、高水準データ型として「配列」と「ハッシュ」がある
# - すべてのデータはオブジェクトとして扱われる
va = 1 # 数値
vb = 'blue' # 文字列
vc = [1, 'z', 2, 'd', 'm'] # 配列、型は混在していて問題ない
vd = {1 => 'a', 'b' => 2} # ハッシュ、キーは混在していて問題ない
VA = 1 # 大文字は勝手に定数になる
puts '定数の再設定を試みると警告がでる(書き換えは実行できる)'
VA = 2
print "VA = ", VA, "\n"
# print/putsだと配列、ハッシュは特に整形されない
print vc, "\n"
print vd, "\n"
# 要素のアクセス:配列はインデックス、ハッシュはキーを[]で囲む
print 'vc[1] = ', vc[1], "\n"
print 'vd["b"] = ', vd["b"], "\n"
# 未定義の要素にアクセスするとnil
print 'vc[10] = ', vc[10], "\n"
print 'vd["c"] = ', vd["c"], "\n"
# 配列はカンマで範囲指定可能 [<開始位置>,<幅>]
print 'vc[1,3] = ', vc[1,3], "\n"
# マイナス指定で末尾からの位置を指定
print 'vc[-3,3] = ', vc[-3,3], "\n"
puts
puts '--- 関数 --------------'
# - def xxx (v1, v2) ... end で定義
def test(v1)
print "v1 = ", v1, "\n"
end
test(va)
puts
puts '--- 制御構造 --------------'
puts
puts '--- 文字列操作 --------------'
# - シングルクオートとダブルクオートで意味が異なる。ダブルクオートは
# エスケープシーケンスを解釈する。シングルクオートはそのままの文字で解釈する
print 'bbbb\n'
puts
print "cccc\n"
puts
# 文字列結合
s1 = 'red'
s2 = ' orange'
s12p = s1 + s2 # 非破壊的結合
print s12p, ' = ', s1, ' + ', s2, "\n"
s12j = s1 << s2 # 破壊的結合
print s12j, ' = ', s1, ' << ', s2, "\n"
# 文字分割 (split)
ve = 'aa bb cc'.split (' ')
print ve[2], ' ', ve[1], ' ', ve[0], "\n"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment