1
def secret_formala(PH)
    jelly_beans = PH * 500
    jars = jelly_beans / 1000
    crates = jars / 100
    return jelly_beans, jars, crates
end

start_point = 10000
beans, jars, crates = secret_formala(start_point)

puts "With a starting point of: #{start_point}"
puts "We'd have #{beans} beans, #{jars} jars, and #{crates} crates."

start_point = start_point / 10

puts "We can also do that this way:" 
puts "We'd have %s beans, %s jars, and %s crates." % secret_formala(start_point)
puts

だから、ここに私が持っている私のコードと私の混乱があります。これは他の人にとっては非常に明白に見えるかもしれませんが、私はまだRubyにかなり慣れていないので、それは私を逃れます. 私が理解していないのは、1行目と2行目の「def secret_formula(PH)」と「jelly_beans = PH * 500」です

「PH」の代わりに何でも入れることができ、それは機能しますが、「PH」がある場所が「start_point」番号を使用していることをコードはどのように理解しましたか? エラーが発生しなかったのはなぜですか? 1行目の「def secret_formula(PH)」の後の「()」に何かを入れるポイントは何ですか?

4

1 に答える 1

2
def secret_formala(PH)

def キーワードは、これが ruby​​ のメソッドであるかどうかを決定するものです。endというキーワードで終わります。

括弧に入るもの、この場合は PH です。これは、メソッドを呼び出すときにメソッドに渡すものです。たとえば、 として呼び出した場合secret_formula(10)、次の行はjelly_beans = 10 * 500コード内で内部的に読み取られます。メソッド定義に常に括弧が必要なわけではありません。これは、常に別の値をこのメソッドに渡すとは限らないためです。追加情報を与えずに内部的に何かを行うメソッドがあるかもしれません。ここでは PH 自体は重要ではありません。渡す値に使用する名前にすぎません。必要に応じて、「hello」という名前を付けることができます。

于 2013-09-05T19:28:46.303 に答える