式
式は変数とリテラル値から値を計算します。
- 算術演算
- リレーショナルオペレーション
- ロジカルオペレーション
- 連結
- 長さ
- 優先順位
算術演算
算術演算は数値に対して実行されます。文字列値を算術演算に使用すると、数値に変換されます。変換に失敗すると、エラーが返されます。
|
|
a + b |
a と b を追加 |
a-b |
a から b を引く |
a * b |
a と b を掛ける |
a/b |
a を b で割る |
a% b |
modulo = a - math.floor(a/b)*b |
a ^ b |
a を b 乗する。b には任意の数を指定できる |
-a |
否定する |
リレーショナルオペレーション
関係演算は 2 つの値を比較し、関係が満たされている場合は true を返し、そうでない場合は false を返します。リレーショナル操作は、どのタイプの値でも実行できます。値が同じタイプでない場合は、false が返されます。数値は通常の方法で比較されます。文字列は、現在のロケールの照合順序を使用して比較されます。
|
|
a == b |
a は b と等しい |
a ~= b |
a は b と等しくない |
a < b |
a は b より小さい |
a > b |
a は b より大きい |
a <= b |
a が b と等しいか、それより小さい |
a >= b |
a が b より大きいか、または等しい |
ロジカルオペレーション
論理演算は従来、ブール値に対して実行されていましたが、この言語では任意の2つの値に対して実行できます。nilとfalseはfalseと見なされ、その他の値はtrueと見なされます。論理演算ではショートカット評価を使用します。最初の値が操作の結果を決定する場合、2 番目の値は評価されません。
|
|
a と b |
a が false または nil の場合は a を返し、それ以外の場合は b を返します。 |
a or b |
a が false ではなく nil でもない場合は a を返し、それ以外の場合は b を返します。 |
not a |
a が false でないか nil の場合は false を返し、それ以外の場合は true を返します |
andおよびor演算は、式内の条件付き評価に使用できます。
|
|
a or b |
a が初期化されていない (nil) 場合は、これを使用してデフォルト値 b を指定できます。これは関数のオプションパラメータに役立ちます。 |
a と b または c |
条件 a に基づいて、nil 以外の b または c を選択できます。a が true の場合、a と b は b を返し、b または c は b を返します。a が false の場合、a と b は false を返し、false または c は c を返します。これは? と同等です。b: C プログラミング言語の c。 |
連結
文字列の連結は s1.. s2 です。これにより、s1 と s2 の内容を保持するのに十分な大きさの新しい文字列が作成され、その内容が新しい文字列にコピーされます。s1 または s2 が文字列でない場合、エラーが発生します。連結を繰り返すと、かなりのコピーオーバーヘッドが発生する可能性があることに注意してください。一度に 1 バイトずつ連結して n バイトの文字列を作成すると、n* (n+1) /2 バイトがコピーされます。パフォーマンスを向上させるには、文字列の一部を連結してテーブル (後述) に入れ、table.concat () 関数を使用できます。この例が COMBINE_HEADERS () の例に示されています。
長さ
文字列 s の長さは #s によって返されます。#演算子は、後で説明するように、配列テーブルでも使用されます。
優先順位
演算子の優先順位によって、式で実行される演算の順序が決まります。優先順位の高い操作は、優先順位の低い操作より先に実行されます。優先順位は通常どおり、括弧で上書きできます。たとえば、in a + b \* c
, * は+よりも優先順位が高いため、 a + (b \* c)
式は次のように評価されます。
|
|
最高 |
|
- |
not # - (unary) |
- |
|
- |
.. |
- |
= ~= < > <= >= |
- |
変更前 |
最低 |
または |
同じ優先順位の演算は左から右 (左連想) に実行されますが、^ と.. は右から左 (右連想) に実行されます。したがって、^ b ^ cはa^(b ^ c)として評価されます。
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.