Just do IT

思うは招く

2019-12-01から1ヶ月間の記事一覧

Rubyで見た「||=」の正体

とあるRubyのソースコードを見ていて、「||=」といった謎の演算子が出てきた。 なんだこりゃ?? ||= は通称「nilガード」 調べてみると、どうやら変数を初期化したいときに使われる演算子で、Ruby界隈では「nilガード」と呼ばれているらしい。 たとえば、pr…

Ruby基礎問題100本ノック#10 ファイルの単語数を取得する

お題 以下のファイルの単語数を取得せよ wcコマンドを使い単語数が合っているかチェックすること wcコマンドのカウント方法に合わせる sample.rb sample sample sample sample sample 回答 file = 'sample.rb' file_words = File.read(file).split.size p fi…

Ruby基礎問題100本ノック#9 ファイルの容量(バイト数)を取得する

お題 下記のファイルの容量(バイト数)を求めよ できたらwcコマンドを使い容量が合っているかチェックすること sample.rb sample sample sample sample sample 回答 file = 'sample.rb' p File::Stat.new(file).size => 34 wcコマンドの-cオプションを使い…

Ruby基礎問題100本ノック#8 華氏を摂氏に変換し、1度から100度まで温度を出力

お題 「Ruby基礎問題100本ノック#4 摂氏温度を華氏温度に変換する」とは逆に、華氏を摂氏に変換するメソッドfahr_to_celsを定義せよ 摂氏1度から摂氏100度まで1度きざみに華氏温度との対応を出力すること 回答 def fahr_to_cels(fahr) (fahr - 32) / 1.8 end…

Ruby基礎問題100本ノック#7 Optionparserを使って条件分岐してメソッドを使う

お題 ターミナルから-a,-l,-r,-alrのオプションを引き取り、それぞれのオプションで条件分岐をしてメソッドを設定せよ メソッドはputs '適当な文字列'でOK -alrに関しては-ralや-lraなどのように順番を変えても同じメソッドが動作すること 回答 require 'opt…

Ruby基礎問題100本ノック#6 ファイルの行数を取得する

お題 次のファイルの行数を取得せよ。 test test test test test ファイル名test_file.rb (ファイル場所は実行ファイルと同一ディレクトリにあるものとする) 回答 str = File.read("./test_file.rb") p str.lines.count 説明 ファイルの内容を取得する方法…

Ruby基礎問題100本ノック#5 配列の各数字に対応する文字列をハッシュから取り出す

お題 とある配列の、後ろから1〜3番目の数字それぞれに対応する文字列を、用意されたハッシュから取り出して連結で表示せよ。 例えば、["1", "2", "3", "4", "5", "6"]といった配列があり、次のようなハッシュがあったとする。 hash = { "0" => "---", "1" =…

Ruby基礎問題100本ノック#4 摂氏温度を華氏温度に変換する

お題 摂氏温度を華氏温度に変換するcels_to_fahrメソッドを定義せよ。 回答 華氏と摂氏を変換する公式は次のとおり。 華氏 = 摂氏 × 9 ÷ 5 + 32 つまりこのままコードにすればいいだけ。 def cels_to_fahr(cels) cels * 9 / 5 + 32 end 実行してみると cel…

Ruby基礎問題100本ノック#3 文字列の各文字を数える

前回に引き続き、今度は単語ではなく文字の個数を数えてみる。 Ruby基礎問題100本ノック#2 文字列から単語をカウントしてハッシュで表現する - ゴリラよりオランウータン派 お題:文字列の各文字数を数えてハッシュで表現せよ 問題:文字列no pain no gainの…

Ruby基礎問題100本ノック#2 文字列から単語数をカウントしてハッシュで表現する

お題:文字列に出現する単語数を数えてみよう 問題:文字列no pain no gainに出てくる単語の個数を数えて、ハッシュで表現しよう 問題については以下の記事を参考にした。 qiita.com 回答 string = 'no pain no gain' hash = Hash.new(0) string.split(' ').…

Ruby基礎問題100本ノック#1 特定の文字をカウントする

何をするか 今日から、Rubyの基礎問題を解いていくことにした。 目的:プログラミング脳を鍛えるため 目的はこちら。 プログラミング脳を鍛える 自分でロジックを組む力 詰まったときの思考的な対処法を身につける メンタル的なバランスをとる きっかけは、…