LoginSignup
0
0

More than 3 years have passed since last update.

Ruby学習6

Posted at

演習で間違えた問題復習

現在、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...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0