Created
September 8, 2013 03:55
-
-
Save m-mizutani/6481720 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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