Ruby備忘録
勉強しながらメモしたことをそのまま記述しています。
・出力
put "Hello World"
puts "#{}"
・文字列
""か''
・コメント
#
・変数
適当に作れる
・変数展開
puts "#{age}歳です"
ダブルクォーテーションで囲むと変数展開できる
シングルクォーテーションで囲むと文字列がそのまま表示できる
・条件分岐
if hoge > 0
puts "hoge"
elsif hoge < 0
puts "hoge"
else
puts "hoge"
end
60
trueとfalseがある
配列
["a","b","c"]
[1,2,3]
・繰り返し
配列.each do |変数名|
#実行したい処理
end
・ハッシュ
A={"a"=>1,"b"=>2,"c"=>3}
アクセス
A["a"]
なかった場合は新しく作られる
・ハッシュの別の書き方
前コロン
前コロンだと矢印が必要
A={:a => 1,:b=>2,:c=>3}
シンボルという書き方
もちろん使うときもコロンでなけらばならない
・さらに省略したハッシュの書き方
後コロン
後コロンだと矢印がいらない
A={a:1,b:2}
でも使うときは前コロン
頭がこんがらコロンって感じ!(うまい)
・なにもない
nil
・ハッシュの配列
exams = {
{subject: "Math", score: 80},
{subject: "Science", score: 55}
}
exam = exams[1]
exam[:score]
配列内のオブジェクトの要素の値を使用するには1ステップ必要
というわけでもない。
exams[1][:score]
の形で代用可能
・配列とハッシュを使ったときのeach
users.each do |user|
puts user[:name]
end
・メソッド
def メソッド名
処理
end
def メソッド名(引数1,引数2)
処理
return 1
end
引数を渡さないといけない関数で渡してないとエラー
関数で真偽値を返す場合は以下のようにしなければならない
def a?(b)
return b < 0
end
puts a?(5)
これの結果はfalseになる
・キーワード引数※重要
def introduce(name:, age:, food:)
puts "私は#{name}です"
puts "年齢は#{name}歳です"
puts "好きな食べ物は#{food}です"
end
introduce(name:"にんじゃわんこ",age:14,food:"ラーメン")
・クラス
class Menu
attr_accessor :name
attr_accessor :price
def show
puts "私はメニューです"
end
end
attr_accessor メンバであることを明示
:name :price インスタンス変数
・インスタンス化
menu1 = Menu.new
menu1.namae = "すし"
newは必ず小文字にすること!
・クラス内でメンバ変数を使うとき
self.name
thisと間違えやすいから注意!
・クラスの特別な関数
def initialize
ここはインスタンス生成時に必ず通る
end
def initialize(name;,price:)ここは後コロン
ここはインスタンス生成時に必ず通る
ちなみにname,priceでアクセスするここはコロンなし
end
Menu.new(name:"a",1)ここも後コロン
・require "./menu"
menu.rbの読み込みができる
・++とか--は使えない
・入力を扱う
gets.chomp
これはエンターキーが押されるまで入力を受け付ける
gets.chomp.to_i
これは入力値を数値にする
・継承方法
require "./menu"
class Food < Menu
end
これはメニューを継承した食べ物を表す
・オーバーライドで関数を上書きできる
・super
superは別にinitialize以外のところでも使える
名前の被った親のメソッドと同名のメソッドで呼び出すことでそっちの関数を呼び出せる優れもの
・日付を扱う
require "date"
※./dateでない点注意!
date1 = Date.new(2014,7,31)
puts date1
2014-07-31
曜日チェック
date1.sunday?
今日の日付を取得
Date.today
クラスから呼び出すメソッドをクラスメソッド
インスタンスがなくても呼び出せる
def Menu.is_discount_day?
end
この記事が気に入ったらサポートをしてみませんか?