hello_class.rb
概要
- 引数がある場合 Hello (引数).
- 引数がない場合 Hello World.
と出力するコードを作成する.
解法
前の hello.rb を少し拡張してみる.
def puts_hello name
puts "Hello #{name}."
end
def gets_name
name = ARGV[0] || 'world'
return name
end
name = gets_name
puts_hello name
- puts_hello は "Hello (name)" の出力
- get_name で ARGV[0] に入っているかいないかを判断して name に代入
最終的なコードは以下の通りである.
class Greeter
def initialize
@name = gets_name
puts_hello
end
def puts_hello
puts "Hello #{@name}."
end
def gets_name
name = ARGV[0] || 'world'
return name.capitalize
end
end
Greeter.new
実行結果
> ruby hello_class.rb
Hello World.
> ruby hello_class.rb Masaki
Hello Masaki.
> ruby hello_class.rb masaki
Hello Masaki.
.capitalize は文字列先頭の文字を大文字に, 残りを小文字に変更した文字列を返す. だから masaki を ARGV[0] に入れても, Masaki となる.
参考ページ
- source ~/grad_members_20f/members/djj31370/c6_class_hello.org