2016-06-12 7 views
-1

を返していないし、次のコードは、それは私にどんな結果方法は、私はRubyで初心者だ何

+1

このメソッドは何かを返しますが、使用しません。結果を表示するには、 'puts method(" Amy ")' –

+2

と書くだけです。 'method'はRubyの予約メソッド名であることに注意してください。 – tadman

+1

あなたの質問は不明です。メソッドで何も返されないと主張するタイトルでは、出力が生成されないという質問では、それから、もう一度、あなたの質問では、「結果が出ていない」と言います。それらは3つの全く異なるものです。あなたの*正確な*質問は何ですか? –

答えて

2

を与えていない任意の出力?:

def method(name) 
    return "Hello + #{name}" 
end 

method("Amy") 

を生産されていない理由誰でもお答えください可能性があります出力?文字列を返すだけです。あなたはそれを印刷する必要があります。あなたはすでにあなたが印刷するプットや印刷方法を使用することができ、文字列

1

の一部としてnameを追加しているので、その後、あなたはおそらく+ことを必要としないわかります

puts method("Amy") 

:との最後のメソッド呼び出しを交換してください機能の結果。あなたはそれが画面には何も出力しない方法の終わりに復帰を行う際に、まず、復帰方法のみになっている

puts(method("Amy")) 

または変数

hello = method("Amy") 
puts(hello) 
3

まあで、いくつかの価値を返す。私は例示してみましょう、あなたが行う場合:「こんにちは」は「こんにちは+エイミー」の値を持つように

def method(name) 
    return "Hello + #{name}" 
end 

hello = method("Amy") 

は今のリターンは、「こんにちは」変数に「こんにちは+エイミー」の値を送りました。それが方法でのリターンの仕組みです。 ルビーの画面に何かを出力するには、putsを使う必要があります。例:

def method(name) 
    puts "Hello + #{name}" 
end 

method("Amy") 

「Hello + Amy」と表示されます。そして、最後に、「こんにちはエイミー」を印刷したいだけなら、プラス記号は必要ありません!有益だと思います

+1

'return'を' puts'に置き換えると、_Hello + Amy _ _が出力されますが、メソッドの戻り値も 'nil'に変更されます。 – Stefan

1

また、returnキーワードを省略することもできます。Rubyメソッドは、明示的な戻り値が前に来ない限り、式の最後の行の評価結果を常に返します。明示的に値を返すには、returnキーワードExを使用します。以下のようになります。

def method(name) 
    "Hello " + "#{name}" 
end 

p method("Amy") 
# Output : "Hello Amy" 

def method(name) 
    return "Hello " + "#{name}" 
end 


p method("Amy") 
# Output : "Hello Amy" 

def method(name) 
    return "Bye " + "#{name}" 
    "Hello " + "#{name}" 
end 

p method("Amy") 
# Output "Bye Amy" 
関連する問題