この記事は 「大石泉すき」アドベントカレンダー 2日目の記事となります。
2日目は、1日目のPythonに対抗してRubyで標準出力してみます。
概要
以下のような方を対象にした内容になります。
- 大石泉P
- 大石泉に興味がある人
- Rubyでプログラミングを始めたいと思っている人
なお、すそ野を広げるという観点にたって記事内のコードは以下の環境で実行しています。
OS: Windows 10
Rubyバージョン: ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]
とりあえず、Rubyで出力してみよう
初歩的な標準出力
Rubyがインストールされている状態でコマンドプロンプトを立ち上げて以下のコマンドを入力して実行します。
ruby -e "文字列"
は "文字列"
のコードをRubyが解釈して実行します。
いわゆるevalですね。
ruby -e "puts '大石泉スキ'"
複数回出力する
ruby -e "5.times { puts '大石泉スキ' }"
n.times { (処理) }
は n
で指定した回数分だけ {}
内の処理を実行するループ構文です。
この場合は n = 5
を指定しているので5回文字列の出力が実行されます。
ランダム要素を加えてみよう
文字列を出力するだけでは面白味もないし、 idol++ ではないのでランダム要素を加えてみましょう。
ruby -e "puts ['大石泉スキ', 'idol++', 'ネイビーウェーブ', 'ビット・パフォーマー', 'ニューウェーブ・ネイビー', 'ニューウェーブ・バースデー'].sample"
実行する毎に以下の要素のなかからランダムに出力されます。
Aray#sample を利用しています。
- 大石泉スキ
- idol++
- ネイビーウェーブ
- ビット・パフォーマー
- ニューウェーブ・ネイビー
- ニューウェーブ・バースデー
Rubyのclassファイルを作成してみよう
コマンドラインからの入力だけでは ビット・パフォーマー にはなれないのでRubyでclassを定義してコードを書いてみましょう。
初歩的なclass定義とコマンドラインからの実行
テキストエディタで以下のコードを入力して izumi.rb
という名前で保存します。
class Izumi
def perform
puts '大石泉スキ'
end
end
# コマンドラインから呼び出された時に実行される処理
izumi = Izumi.new
izumi.perform
コマンドプロンプトで以下のコマンドを入力して izumi.rb
を実行します。
ruby izumi.rb
irbからの実行
コマンドラインからの実行では1回限りの操作しか行えないので複数回の操作を繰り返して変化が起こるようにしてみましょう。
まずは、Rubyの対話型の実行環境である irb
を立ち上げましょう。
--noreadline
オプションをつけないと日本語入力が行えないので気を付けてください。
irb --noreadline
以下のようにRubyのコードを実行することができます。
izumi.rb
を以下のように書き換えます。
class Izumi
def initialize
@idol = 0
end
# Rubyはインクリメント演算子がないので全角文字を利用したメソッド名にしています
def idol++
@idol += 1
end
def perform
puts '大石泉スキ'
idol++
if @idol % 3 == 0
idol_rank = @idol / 3
puts ''
puts "大石泉のアイドルランクが上がった! => アイドルランク #{idol_rank}"
end
@idol
end
end
izumi.rb
ファイルのあるディレクトリに移動してirbを起動し、以下のコマンドを入力して izumi.rb
の内容をirbに読み込みます。
require './izumi'
class定義から izumi
インスタンスを作成して perform
メソッドを呼び出します。
izumi = Izumi.new
izumi.perform
perform
メソッドを呼び出す毎に idol++
されて3回毎にアイドルランクがアップしていきます。