見返すことはないとは思うが、Rubyの文法メモが出てきたので、ここに写しておく。
情報は2014年11月16日時点のものなので、あしからず。
# コメント =begin コメント =end # rubyはすべてオブジェクト msg = "hello world!" # 変数 MSG = "hello world!" # 定数 print msg # 改行がない puts msg # 改行がある p msg # データの種類がわかる # メソッド # ! 破壊的メソッド # ? 真偽値を返すメソッド puts msg.upcase # HELLO ~ puts msg # hello ~ puts msg.upcase! # HELLO ~ # ポインタを操作してまう puts msg # HELLO ~ puts msg.empty? # true # 配列 arr = [5, 8, 4] p arr[0] # 5 arr[0] = 3 p arr[0] # 3 p arr[0..2] # [3, 8, 4] // 0~2の要素を取ってくる p arr[0...3] # [3, 8] // 0~2未満の要素を取ってくる p arr[-1] # 4 # 最後の要素を取ってくる p arr[1, 2] # [8, 4] # 1番目の要素から2個分 arr[0...2] = [1, 2] # [1, 2, 4] arr[1, 0] = [10, 11, 12] # [1, 10, 11, 12, 2, 4] arr[0, 5] = [] # [4] arr.size # 要素数 arr.sort # 小さい順にソート arr.reverse # 逆順にソート arr.sort.reverse # 繋げられる arr.push(100) # 配列末尾に100を追加 arr << 101 << 102 # 配列末尾に101, 102を追加 # ハッシュ sales = {"isaka" => 200, "hirata" => 300} p sales["isaka"] # 200 # シンボルの書き方 (文字列オブジェクトをキーを使う場合、文字列オブジェクトを使うより早い書き方) sales = {:isaka => 200, :hirata => 300} p sales[:isaka] # 200 # ruby1.9からできる書き方 sales = {isaka:200, hirata:300} p sales[:isaka] # 200 sales.size # 要素数 sales.keys # キーのみ返す sales.values # 値のみ返す sales.has_key?(:isaka) # そのキーがあるかどうか # キャスト a = 10 b = "5" p a + b.to_i # 15 to_iはint変換 to_sはString変換 # %記法 s = "hel\"lo" s = %Q(hel"lo) # ダブルクォーテーション s = %(hel"lo) # ダブルクォーテーション s = %q(hel"lo) # シングルクォーテーション a = ["a", "b", "c"] # 文字列のみの配列 a = %W(a b c) a = ['a', 'b', 'c'] # 文字列のみの配列 a = %w(a b c) # if score = 80 if score > 60 puts "ok" elsif score > 40 puts "soso" else puts "no" end puts "ok" if score > 60 =begin true それ以外(0, ""も含む) false false nil =end a = 1 b = 2 a, b = 1, 2 # 多重代入 # case signal = "red" case signal when "red" puts "stop" when "green", "blue" puts "go" else puts "end" end # ループ # 数値オブジェクトのtimes 3.times do |i| puts "#{i} : hello" end i = 0 while i < 3 do puts "#{i} : hello" i += 1 end 3.times do |i| if i == 1 break # ループを終える next # ループを1段階進める end puts "#{i} : hello" end for i in 0..2 do puts i end for color in ["red", "pink", "blue"] do puts color end ["red", "pink", "blue"].each do |color| puts color end {"red"=>200, "pink"=>200, "blue"=>200}.each do |color, price| puts "#{color}:#{price}" end # 関数的メソッド def sayHi(name = "sapporo") puts "Hi!" + name end def sayHi_s(name = "sapporo") s = "Hi!" + name s # return sと同意 end sayHi("tom") puts sayHi_s() # クラス # クラス名は必ず大文字 class User # クラス変数 @@count = 0 # コンストラクタ def initialize(name) # インスタンス変数 @name = name @@count += 1 end # ゲッタ # アクセサをつくらないと外部からアクセスできない def name @name end # セッタ def setName(newName) @name = newName end # アクセサを設定 # attr_accessor :name # ゲッタのみを設定 # attr_reader :name # セッタのみを設定 # attr_writer :name # インスタンスメソッド def sayHi puts "my name is #{@name}" end # クラスメソッド def User.sayHello puts "class meshod" end end tom = User.new("tom") tom.sayHi() User.sayHello() # getter tom.name # setter tom.name = "tombo" tom.setName("tombo") # 継承 class SuperUser < User def shout puts "HELLO #{@name}" end end # Timeクラスの使い方 t = Time.now # 今の時間