# たのしい Ruby 達成度確認テスト 答案用紙テンプレート
## 問1の答え Interactive
## 問2の答え 特殊文字
## 問3の答え 出来る
## 問4の答え intern
## 問5の答え 元々「連想配列(associative array)」と呼んでいたが,英語のハッシュの名前が定着した
## 問6の答え 正規表現の文字列マッチング strの文字列がrubyで始まる
## 問7の答え name の値が false
## 問8の答え argument vector
## 問9の答え 前者は一度に全てのファイルの中身を読み込むため,ファイルが巨大な場合メモリを大量に使ったり,処理が重くなる. 後者は一行ずつ読み込むためメモリ等を無駄なく使うことが出来るためこちらのほうが優れている.
## 問10 の答え 実行出来るが,何も標準出力されない
## 問11 の答え print “hello”で標準出力されるhelloが入る
## 問12 の答え 「車」などの雛形,設計図のようなもの 車に必要な「タイヤ」「ボディー」などの車に必要なパーツの何を管理するかをまとめる. また,「アクセル」「ブレーキ」といったどのような振る舞いをするかもまとめている.
## 問13 の答え データやデータを操作する処理をまとめたもの. クラスはオブジェクトの種類.
## 問14 の答え クラス変数
## 問15 の答え ・TESTという名前で2回定数を定義している ・1度定義した定数に再び代入しようとしている この2個の警告が出る
## 問16 の答え [1, [2, 3, 4, 5], 6]
## 問17 の答え itemの中身がString型ならばokそれ以外の型ならngを出力する
## 問18 の答え if value == "A" p "A" elsif value == "B" p "B" else p "other" end
## 問19 の答え b = a
## 問20 の答え 1 2 3 4
## 問21 の答え 1 2
## 問22 の答え names = [ "awk", "Perl", "Python", "Ruby" ] names.each do |name| puts name end
## 問23 の答え awk Perl Perl
## 問24 の答え 全て
## 問25 の答え オブジェクト
## 問26 の答え クラスメソッド
## 問27 の答え 3
## 問28 の答え nil
## 問29 の答え def myloop while true yield end end nums = [1,2,3,4,5] nums.each do |num| myloop{p num; break} end
## 問30 の答え def höge (args) end のように引数の変数名の前にを付ける
## 問31 の答え Hash
## 問32 の答え 不可能 ハッシュが入らなければならないが,3だけハッシュの形になっていない.
## 問33 の答え サブクラス
## 問34 の答え スーパークラス
## 問35 の答え 1
## 問36 の答え class Test def initialize(num) @number = num end def number=(value) @number = value end end
## 問37 の答え @number = number
## 問38 の答え class HelloWorld def HelloWorld.hello(name) puts "#{name} said hello." end end
## 問39 の答え countはクラスメソッドではなく,インスタンス変数なので, インスタンスを作成しなければならない.
## 問40 の答え 3 countはクラス変数なので異なるインスタンスでも変数は共通しているため
## 問41 の答え initialize : private hello : public goodbye : public count_reset : private
## 問42 の答え super
## 問43 の答え alias
## 問44 の答え 継承できない
## 問45 の答え Mix-in
## 問46 の答え エラーならなかった
## 問47 の答え 出力結果: C#meth Mix-inの順番の問題で同じ名前のメソッドが定義されている場合, class Cのメソッドが優先されるから
## 問48 の答え ・外部からオブジェクトが管理するデータにアクセス出来ないようにし,メソッドを通して呼び出しさせること ・具体的な処理を隠蔽することにより,メソッド内の挙動を気にすること無く結果を取得出来るようにすること
## 問49 の答え ・違うオブジェクト名に1つのメソッド名を与えることにより,それぞれのオブジェクトに適した形で処理を行い結果を返すこと
## 問50 の答え 2 a = a ||= 3と同値であるため,aがnilまたはfalse以外なので論理式の解として2が返る
## 問51 の答え 1 bがnilのため,論理式の解としてaの1が返る
## 問52 の答え 空文字
## 問53 の答え 2
## 問54 の答え class Hoge def initialize File.read("/no/file") end end
hoge = Hoge.new
## 問55 の答え “2” “3”
## 問56 の答え nil
## 問57 の答え array = ['Ruby', 'Perl', 'PHP', 'Python'] array.sort_by! do |item| item.length end array.reverse
## 問58 の答え 110
## 問59 の答え 165
## 問60 の答え [1,3]
## 問61 の答え 分数の5分の2
## 問62 の答え Float
## 問63 の答え 2
## 問64 の答え 1
## 問65 の答え seed値
## 問66 の答え a,bのオブジェクトが一致しているかを判定しているため
## 問67 の答え 4
## 問68 の答え [2,3,4]
## 問69 の答え [2,3,4,5]
## 問70 の答え [3,4,5]
## 問71 の答え [2,3]
## 問72 の答え FIFO : First In First Out 先入れ先だしでキュー LIFO : First In Last Out 先入れ後出しでスタック
## 問73 の答え 5
## 問74 の答え [1,2,3,4]
## 問75 の答え [1,2,3,4,5,3]
## 問76 の答え メソッドのレシーバにあたるオブジェクトの値そのものを変更してしまうメソッドのこと
## 問77 の答え [2,3,4,8,10]
## 問78 の答え a = [1, [2, [3]], [4], 5] a.flatten! p a
## 問79 の答え “I am a pen.”
## 問80 の答え “String”
## 問81 の答え “abcz”
## 問82 の答え true 辞書順
## 問83 の答え I AM A PEN.
## 問84 の答え 出力:0 hのハッシュのデフォルト値が0だから
## 問85 の答え person_age = {'feedforce' => {'a-know' => 33},'kaizen' => {'naoya'=> 38}}
## 問86 の答え /^ABC/
## 問87 の答え abc
## 問88 の答え なし
## 問89 の答え C
## 問90 の答え ABC
## 問91 の答え なし
## 問92 の答え AAC
## 問93の答え AB
## 問94 の答え なし
## 問95 の答え 大文字と小文字を区別しない
## 問96 の答え “a”
## 問97 の答え "a*b@@c@@d@@e"
## 問98 の答え opneメソッドにブロックとして渡せばio.closeを省略出来るため
## 問99 の答え call
## 問100の答え proc_obj = Proc.new do |num1, num2, num3| num = [num1,num2,num3] end proc_obj.call(1,2,3)
Procとyieldについては実際のコードを見て覚えるといいかも