数値型変換
1+"2"という演算は3にはならずに例外を返す
1 + "2".to_i
↑これは3を返す
↓整数と浮動小数点間で型を変換するためにはこんなメソッド
p 7.to_f / 2 p 7.0.to_i / 2
なるほど
あと"<=>"こんな演算子があるらしい
↓こんな感じで書いてみると
class Hoge def initialize(value) @val = value end attr_accessor :val end a = Hoge.new(100) b = Hoge.new(200) c = Hoge.new(300) d = Hoge.new(400) e = Hoge.new(500) f = Hoge.new(600) g = Hoge.new(700) h = Hoge.new(800) i = Hoge.new(900) j = Hoge.new(1000) array = [j,i,h,g,f,e,d,c,b,a] array.sort{|x,y| x.val <=> y.val}
x.valの結果とy.valの結果を<=>で比較してソートしてくれたみたい
ここで以下のようにブロック引数無しで
array.sort
ってやってもエラーになる。この場合は a<=>b というふうにオブジェクトそのもの同士の比較が行われてしまい比較ができないということだと思う