2016-02-21 5 views

答えて

4

と関数呼び出しの結果を比較returnはキーワードであり、引数ではなく条件式を持っています。明示的にreturnと記載されている場合は、それが返されます。しかし、それは論理的な側面が作用するときにそれを評価します。

私は論理的な側面に入るつもりです。

==は比較演算子であり、引数がであるかどうかを確認します。です。そうならtrueを返します。したがって、returnで使用される場合、returnが評価され、等しい場合はtrueを返します。

これは ==に限定されるものではない

任意の比較演算子(~=<=>=<>まったく同じことを行います。

and,は少し異なって動作します。彼らは真偽を返さない。

return a and b:ここでは、彼らがどのように動作するかだ真(偽どちらでもnil)

return a or b Bリターン場合、これは基本的にと評価されます。これは、基本的に変換する*真である場合(偽のどちらでもnil)そうでない場合は、あなたが想像できるように

bを返す、返す、return a and b or cのようなものはそう

if a then 
    if b then 
     return b 
    else 
     return c 
    end 
else 
    return c 
end 

意味します210はnotreturn ((a and b) or c)

へと完了のために同等であるだけでそれを評価し、それ反転させ、それはそれはnil /偽だ場合はtrueを返す、そうでない場合はfalseを返します。

9

returnステートメントは、引数として式が必要です。つまり、return expressionと書くと、評価値expressionが返されます。この特定の場合において

Memory.value("game", "textbox") == 1Memory.value("game", "textbox")の戻り値が1に等しい場合trueに評価される式です。 Memory.value("game", "textbox")1以外の値である場合、式はfalseと評価されます。これはreturn文が返すものです。

あなたは簡単に

if (Memory.value("game", "textbox") == 1) then 
    return true 
else 
    return false 
end 

として与えられた文を書くことができます。しかし、これは論理的に冗長であるとして、あなたはこのコードを書く避け、代わりにあなたが提供される一つのライナーを使用したいと思います。

5

あなたの質問は、あなたがPerlを知っているということです。いいえ、それはPerlのようなものではなく、 `if 'や同様のステートメントの条件がステートメントの後に続くことができます。

returnは、ゼロ以上の戻り値のリストが必要です。関数は任意の長さのリストを返すことができます。また、任意の数のreturn文を持つことができ、同じ長さまたは意味のリストを返す必要はありません。したがって、関数のドキュメントは不可欠です。例としてloadを参照してください。

この文は、trueまたはfalseを返します。

はそれがテーブルとしてメモリによって参照値、「値」を持つインデックスを扱い、2つの文字列引数を持つ関数として得られた値を呼び出し、値1