###はじめに
ただの初学者のrubyシルバー取得に向けての学習アウトプットです。
文章もただただ、タコ殴りしてるだけなので、温かい目で見守っていただけると幸いです。
###今回の教材
####公式擬似問題集
これは下記リンクからgithubに飛びます。
無料です。全50門解説もついてます。(ありがてぇ〜〜〜〜)
https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0
####やってみて
全然だめでした。。。。。
ということで、凹んでられないので詰まった部分を復習していきたいと思います。
####以下復習
- 可変長引数の問題
#下記の実行結果は?
def foo (a, *b)
p a
end
foo(1,2,3,4)
#結果は
1
*b
は可変長引数で引数を複数個設定できる。引数は配列として受け取られるので今回の場合
#*bの中身も出力してみる
def foo (a, *b)
p a,b
end
foo(1,2,3,4)
#結果
1
[2,3,4] #bは配列が出力される
-
size
メソッド
puts({"members" => 193, "year" => 2014}.size)
#結果
2
size
メソッドは要素の数を返す。今回はハッシュの要素数、配列の場合は配列の要素数。
-
clear
メソッド
h = {1=>2, 3=>4}
h.clear
p h #=>{}
ary = [1, 2]
ary.clear
p ary #=>[]
#clearメソッドは空のハッシュ、配列を返す
ちなみに問題にはremove
,destroy
,empty?
の選択肢があったのですが、remove
,destroy
はNoMethodError
でempty?
はハッシュと配列をそのまま返してました。
-
chop
メソッド
#ヘロ〜
s = "hello"
puts s.chop
#しかし!!結果は!!
hell
#地獄!!
chop
メソッドは最後の1文字を取り除いた新しい文字列を返しますが、末尾が\r\nで終わってる場合は2文字取り除きます。
ちなみにchomp
メソッドは末尾の改行コードを取り除きます。
rstrip
は文字列の末尾の空白文字を除去した新しい文字列を返します。
こんなにあるんか、、、、、、、、と気が滅入り、、、、、いや、がんばります。
- IOクラスの問題
File.open("foo.txt","r") do |io|
puts io.gets
puts io.read
io.rewind
p lines = io.readlines
end
このコードのio.rewindの処理は何か?って問題でした。
答えはIO#rewindはファイルポインターを先頭に移動させます。
とのこと。
つか、IOクラスって何??って思いました。getとかは使っていたけど、IOクラスに関しては全くでした。頼りにしていたチェリー本でも網羅されていませんでした(泣)
なのでIOクラスはしっかり勉強しないとヤバ谷園ですね。()
- sort
odd = [1,3,5]
even = [2,4,6]
num = odd + even
p num.sort
[1,2,3,4,5,6]
#ちなみにsortをつけないと
[1,3,5,2,4,6]
sort
がないときの挙動も確かめときました。
- 正規表現の問題
/^[hc].*o$/i
この正規表現にマッチするものを2つ選べよ。
A.Hello
B.holland
C.Cello
D.h35L320
こちら先頭の文字がhかc(iオプションで大文字小文字無視)で.*で何かしら文字が連続してoで終わるってことで答えは。。。A,Cだ!!!!
ということなのですが、私、アルファベットのoを数字の0と読み間違えて、ハマってました(泣)
####復習してみて
2回目は流石に9割以上解けました。1回目に答えだけでなく1門1門調べて理由まで説明できるようにしました。まぁ、まだまだ、先は長いのでアール。。。。。