Rubyの続きです。前回は最新版のRubyをインストールするところまでをやりました。今回は文字列や計算の出力をやってみます。ターミナルのIRB(REPL)だけでなく、rbファイルからの実行もしてみました。rbファイルの実行ではputsメソッドの実行が必要でした。計算ではMathモジュールも使いました。それではいきましょう!
【目次】
※Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com
文字列の出力:ターミナルで実行(putsなしでOK)
「20分ではじめるRuby」の内容をローカル環境でやってみる。
※参考:20分ではじめるRuby
ターミナルを立ち上げてirb
コマンドを実行するとRubyのREPLモードであるIRB(Interactive Ruby)に切り替わる。
% irb irb(main):001>
リファレンス>irb
※参考:library irb (Ruby 3.3 リファレンスマニュアル)
何か文字を打ってみるが、そのままではエラーになる。メソッドを実行されていると解釈され「そんなメソッドはないよー」となるようだ。
irb(main):001> はろお・るびぃ (irb):1:in `<main>': undefined local variable or method `はろお・るびぃ' for main (NameError) from <internal:kernel>:187:in `loop' from /Users/xxx/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.0/exe/irb:9:in `<top (required)>' from /Users/xxx/.rbenv/versions/3.3.0/bin/irb:25:in `load' from /Users/xxx/.rbenv/versions/3.3.0/bin/irb:25:in `<main>'
文字列なので" "
で囲ってみる。今度は文字列がそのまま出力される。
irb(main):002> "はろお・るびぃ" => "はろお・るびぃ"
「20分ではじめるRuby」によれば、これはプログラムではなく、式の実行結果の表示。
何が起こったのでしょうか。世界一短い “Hello World” プログラムを書いたのでしょうか? ちょっと違います。2行目はIRBが最後の式を実行した結果を教えてくれているのです。
文字列の出力のためにはputs
メソッドを実行する。
irb(main):003> puts "はろお・るびぃ" はろお・るびぃ => nil
" "
がなくなり、=> nil
が表示されている。
putsはRubyで何かを出力する基本的なコマンドです。 では、=> nilは何でしょうか? これはこのコマンドの評価結果です。 putsは必ずnilを返します。nilは、「まったく何もない」ことを表すRubyの「値」です。
リファレンス>puts
※参考:Kernel.#puts (Ruby 3.3 リファレンスマニュアル)
文字列の出力:rbファイルで実行(puts必要)
「20分ではじめるRuby」では引き続きirbを使っているが、やったことをGitの記録に残すため、rbファイルで実行してみる。rbファイルの実行方法は「20分ではじめるRuby」の3ページ目にでてくる。
※参考:20分ではじめるRuby
rbファイルに先ほどの文字列のputs
あり、なしバージョンを書いてみる。putsなしは「!」、putsありは「!!」を付ける。
"はろお・るびぃ!" puts "はろお・るびぃ!!"
rbファイルではruby
コマンドを実行する(ruby ファイル名
)
% ruby ri20min_1.rb はろお・るびぃ!!
putsあり(「!!」付き)だけが出力される。rbファイルではputs
が必要なようだ。
リファレンス>rb
※参考:Rubyの起動 (Ruby 3.3 リファレンスマニュアル)
以降、rbファイル上で動作確認をしたいため、puts
を付けて記述していく。
計算の実行
次にいろいろな計算を実行してみる。
# 計算式 puts "足し算:3+2" puts 3+2 puts "引き算:3-2" puts 3-2 puts "掛け算:3*2" puts 3*2 puts "べき乗:3**2" puts 3**2 puts "割り算:3/2" puts 3/2 puts "余り:3%2" puts 3%2
ruby
コマンドの実行結果
% ruby ri20min_2.rb 足し算:3+2 5 引き算:3-2 1 掛け算:3*2 6 べき乗:3**2 9 割り算:3/2 1 余り:3%2 1
計算式の書き方はJSとだいたい共通しているようだった。
※参考:演算子式 (Ruby 3.3 リファレンスマニュアル)
Mathモジュールの実行(sqrt())
次にMathモジュールを実行してみる。
puts "平方根:Math.sqrt(9)" puts Math.sqrt(9) puts "変数a:3 ** 2" puts a = 3 ** 2 puts "変数b:4 ** 2" puts b = 4 ** 2 puts "変数a+b" puts a+b puts "平方根:Math.sqrt(a+b)" puts Math.sqrt(a+b)
ruby
コマンドの実行結果
% ruby ri20min_3.rb 平方根:Math.sqrt(9) 3.0 変数a:3 ** 2 9 変数b:4 ** 2 16 変数a+b 25 平方根:Math.sqrt(a+b) 5.0
Math
は数学関係のモジュール関数
※参考:module Math (Ruby 3.3 リファレンスマニュアル)
sqrt()
は平方根を返す。
※参考:module Math (Ruby 3.3 リファレンスマニュアル)
a
、b
などは変数。Rubyの変数は頭に何も付けなくていいようだ(JSではconst
、let
などを付けていた)
※参考:変数と定数 (Ruby 3.3 リファレンスマニュアル)
最後に
ということで、今回は下記を行なってみました。
- 文字列の出力
- irbとrbファイルの比較(rbファイルはputsメソッドが必要)
- 計算式の実行
- Mathモジュールの実行(sqrt()で平方根を返す)
次はメソッドの定義に入っていきたいと思います。それではまた!
※Ruby/Ruby on Railsを習得するためにやったこと まとめ qiita.com