5

以下のコード:

def a
  print "Function 'a' called\n"
  99
end

print "a=", a, "\n"

生成:

Function 'a' called
a=99

function 'a' calledが最初に表示されるのはなぜですか? 最初に表示されると思っていa=ました。

4

4 に答える 4

11

引数がメソッドに渡される前に、引数が評価されます (渡す値があるように)。関数呼び出しの評価には、a印刷の副作用があります"function 'a' called。そのため、最初に印刷されます。

于 2013-07-10T09:36:18.480 に答える
3

まず、メソッドaが .xml を含めて完全に実行されprint "Function 'a' called\n"ます。メソッドが を返した後でのみ99、行print "a=", a, "\n"を実行できます。

次のように考えてください: の戻り値はa、最後の行に出力する前に知る必要があります。

于 2013-07-10T09:36:42.853 に答える