以下のコード:
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
、最後の行に出力する前に知る必要があります。