8月と大して変わらず暑かった9月ですが、学習を振り返りです。8月はRuby教材でのインプットが主体でしたが、9月は1ヶ月通してRuby課題に対するアウトプットに打ち込む月間となりました。
9月上旬
- ターミナル上に計算結果を表示させるプログラムの実装。表示されるレイアウトも考慮して実装しなければならないが、ここで9月アップした別記事にもあるようにoptparseライブラリ・コマンドライン引数の学習、if, unless, rjustメソッド、raiseによる意図的な例外発生の実践的な活用法を学びました。
value = 1 unless value == 0 # value ≠ 0 'hello' else # value = 0 'goodbye' end #=> "hello" str = 'hoge' str.rjust(5) #=> " hoge" str.rjust(10) #=> " hoge"
続いて、別ファイルからの標準出力を受け取り、受け取った文字列を解析し、Rubyプログラム側で用意した文字列に変換して出力するプログラムを作成しました。 この課題ではARGFの取り扱いと、transposeメソッドについて学習しました。
test_str = ARGF.gets.chomp testtext #=> "testtext" arr1 = [1, 3, 5, 7] arr2 = [2, 4, 6 ,8] arr_cal = [arr1, arr2] p arr_cal #=> [[1, 3, 5, 7], [2, 4, 6, 8]] p arr_cal.transpose #=> [[1, 2], [3, 4], [5, 6], [7, 8]]
9月中旬~下旬
- Rubyのクラスとインスタンスを使用して作成する課題に取り組んだが、当初、私自身の課題の解釈が間違っており、正解を導き出すのに時間が掛かってしまった。(根気よくコードレビューをして下さった方々、ありがとうございます。)
- 課題に取り組む中、公式リファレンスでメソッドを探したり、チェリー本で文法の確認をしていたが、結果としてこの課題で、インスタンス同士の計算・比較方法、三項演算子・attr_readerの使い方、キーワード引数の指定方法、delete_at メソッド、ハッシュに対してのassoc,rassocメソッドを学びました。
test_score = 50 test_score.zero? ? '零点です' : "#{test_score}点です" #=> "50点です" hash_str = {water: 'blue', fire: 'red', leaf: 'green'} hash_str.assoc(:water) #=> [:water, "blue"] hash_str.rassoc('green') #=> [:leaf, "green"]