#演習で間違えた問題復習
現在、Ruby技術者認定試験silverを取得するべく勉強中です。
そろそろ試験なので、模擬試験で引っかかった部分を復習します。
##定数への破壊的メソッド
HOGE = "hoge"
HOGE.gsub!("hoge", "piyo")
print HOGE
この出力結果に警告が出る(定数の変更が行われる為)と思ってが、違った。
警告文は、定数の「再代入」に対して行われるので、破壊的メソッドの呼び出しには警告なく値を変更できる。
##?を用いた文法
p ?A
短いけど、なんだこれな文法。?の後の1文字を文字列で出力する。2文字以上書くとエラー。僕の脳では何に使うか全くわからない。
##クラスの継承
class Hoge < Kernel ; end
これを実行するとエラーを吐くんですが、理由は、Kernelがモジュールだから。モジュールを継承するにはincludeを使う。
##to_iメソッド
p "123abc".to_i
=> 123
文字列を整数にする、は理解してたものの、整数以外がある場合を把握していなかった。
整数以外が混ざっている場合、整数以外の1文字手前までを整数として出力する。
なので、"123abc123"to_iの場合でも出力するのは123。
##演算子||
a = [1,2,3,4]
b = [1,3,5,7]
p a || b
=> [1,2,3,4]
出力が[1,2,3,4,5,7]だと思ったんですが、それは a | b の場合。
a || b の場合、aがtrueである時、bを評価せずにaを吐いて終わり。
##正規表現
puts "0123456789-".delete("^13-56-")
=> 13456-
「deleteでマッチするのが1と、3から5と6と-だから、これを消せば良いのね、完全に理解した」←分かってない
正規表現に^が含まれたら「〇〇以外」になるので、上記にマッチした文字列「以外」を削除する。
##chrメソッド ordメソッド
p 75.chr
p "K".ord
=> "K"
75
chrメソッドは整数を文字コードとして文字変換
ordメソッドは逆に文字を文字コード対応の整数に変換
To_Be_Continued...