Chris Pine
オライリージャパン ( 2010-09-21 )
ISBN: 9784873114699
これを読みながら書いてあるコードを試してみた。
// rubyのバージョンを確認
$ ruby -v
// rubyのプログラムを動かす
$ ruby calc.rb
// rubyの割り算
puts 9.0 / 2.0 // 4.5
puts 9 / 2 // 4
// オブジェクトの文字列バージョンはオブジェクトの後ろに.to_sをつける
var1 = 2
var2 = '5'
puts var1.to_s + var2
// 整数バージョン
.to_i
// 浮動小数点バージョン
.to_f
// 整数型に変更
puts '5は〜〜'.to_i // 5 5は認識出来た
puts '私は5が〜〜'.to_i // 0 最初から全てが無視される
// putsは文字列バージョンを表示
puts 20 // 20
puts 20.to_s // 20
puts '20' // 20
putsはput string
// getsで入力した内容を取得する
name = gets
最後のエンターが取得されてしまうので
name = gets.chomp
を使う
// 整数と文字列
favnum = gets.chomp.to_i + 1.to_i
puts favnum+ 'の方がよいですね' // error 数字と文字列を足そうとしている
favnum = gets.chomp.to_i + 1.to_i
puts favnum.to_s + 'の方がよいですね' // 入力した数字に1足した物がでる
// putsのオブジェクトを調べる
puts self // main
// .reverse 文字列を逆順にする
var1 = 'stop'
puts var1.reverse
// 文字列をセンター揃えで表示
puts ('文字列文字列'.center(line_width))
//左揃え
.ljust
//右揃え
.rjust
// 指数 **
5**2 // 25
// 剰余 %
7%3 // 1
// 数値の絶対値を返す abs
puts (2-5).abs // 3
// 乱数を返す rand
rand(101) // 0 - 100のどれか
rand(1) // 必ず0
// stand randで同じ乱数を返す
stand 1976
puts (rand(100))
puts (rand(100))
puts (rand(100))
puts''
stand 1976
puts (rand(100))
puts (rand(100))
puts (rand(100))
同じ物が並ぶ
// 比較
puts 1 > 2 // false
puts 2 > 1 // true
puts 4 >= 5 // false
puts 5 <= 5 // true
// 文字列の比較
puts 'cat' < 'dog' // true
大文字の方が先になるので、比較する場合は.downcaseで小文字にして比較する
もしくはupcase,capitalizeを実行
// 条件分岐
if name == 'クリス'
puts 'ステキな名前'
end
// コメントアウト #
// ループ while(trueである間)
input = ''
while input != 'ばいばい'
puts input
input = gets.chomp
end
puts 'またね'
====
while true // 常にループするようにする
input = gets.chomp
puts input
if input == 'ばいばい' // 条件分岐
break //breakでループから抜け出す
end
end
puts 'またね'
// Ctrl + Cで無限ループから抜ける
// elseif
if name == 'クリス'
puts 'ステキな名前'
elseif == 'ケイティ'
puts 'ステキな名前'
end
// 重複をまとめる
if name == ’クリス' || name= 'ケイティ'
puts 'ステキなお名前'
end
このようには書けない
if name == (’クリス' || 'ケイティ')
puts 'ステキなお名前'
end
// 論理演算子
&& and
! not
|| または(少なくとも1つは真)
// 1930-1950の乱数
year = rand(50)
while year <= 30
year = rand(50)
end
ではなくて
year = 1930 + rand(21)
// each(メソッド)(イテレータ=ループ的に動くメソッド)
languages = ['英語','ノルウェー語','Ruby']
languages.each do |lang|
puts lang+'大好き!'
puts 'やっぱり'
end
かならず do.....endがくっつく
// 整数メソッド
3.times do
puts 'Hip-Hip-Hooray!'
end
Hip-Hip-Hooray!
Hip-Hip-Hooray!
Hip-Hip-Hooray!
// last
配列の末尾にある物を教える
// join
配列にオブジェクトを追加
// push
配列の末尾にオブジェクトを追加
// pop
配列の末尾のオブジェクトを取り除いて、それが何かを知らせる
// def 自作メソッド
def say_moo
puts 'mooooooooo'
end
say_moo // mooooooooo
say_moo // mooooooooo
// 引数
def say_moo number_of_moos
puts 'mooooooo' *number_of_moos
end
say_moo 3 // mooooooomooooooomooooooo
引数を渡していない場合はエラー
// 再帰
def factorial num
end
// "#{ hoge}"
name = 'ルーク'
zip = 90210
puts "名前 = #{name} 、郵便番号= #{zip}" // 名前 = ルーク、郵便番号 = 90210
この中では式も評価出来る。