以下のコード:
def a
print "Function 'a' called\n"
99
end
print "a=", a, "\n"
生成:
Function 'a' called
a=99
function 'a' calledが最初に表示されるのはなぜですか? 最初に表示されると思っていa=ました。
以下のコード:
def a
print "Function 'a' called\n"
99
end
print "a=", a, "\n"
生成:
Function 'a' called
a=99
function 'a' calledが最初に表示されるのはなぜですか? 最初に表示されると思っていa=ました。
引数がメソッドに渡される前に、引数が評価されます (渡す値があるように)。関数呼び出しの評価には、a印刷の副作用があります"function 'a' called。そのため、最初に印刷されます。
まず、メソッドaが .xml を含めて完全に実行されprint "Function 'a' called\n"ます。メソッドが を返した後でのみ99、行print "a=", a, "\n"を実行できます。
次のように考えてください: の戻り値はa、最後の行に出力する前に知る必要があります。