式
式は、変数とリテラル値から値を計算します。
- 算術演算
- 関係演算
- 論理演算
- 連結
- 長さ
- 優先順位
算術演算
算術演算は、数値に対して実行されます。算術演算で文字列値が使用されると、数値に変換されます。これが失敗すると、エラーが返されます。
|
|
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 and b |
aが偽またはnilの場合、他の戻りbを返します |
a or b |
aが偽でなく、nilでない場合は、他の戻りbを返します |
not a |
aがfalseまたはnilでない場合はfalseを返し、それ以外の場合はtrueを返します |
andおよびor演算は、式内の条件付き評価に使用できます。
|
|
a or b |
aが初期化されていない(nil)場合、デフォルト値bを提供するために使用することができます。これは、関数のオプションのパラメータに便利です。 |
a and b or c |
条件aに基づいて非nil bまたはcを選択するために使用できます。aが真の場合、aとbはbを返し、bまたはcはaが偽の場合、aとbは偽を返し、またはcはcを返します。これは、? b:Cプログラミング言語のc。 |
連結
文字列の連結は s1.. s2 です。これにより、s1とs2の内容を保持するのに十分な大きさの新しい文字列が作成され、その内容が新しい文字列にコピーされます。s1 または s2 が文字列でない場合は、エラーが発生します。連結を繰り返すと、かなりのコピーオーバーヘッドが生じる可能性があることに注意してください。一度に1バイトを連結してnバイトの文字列を作成すると、n*(n+1)/2バイトをコピーします。パフォーマンスを向上させるには、文字列の一部を連結してテーブル(後述)に配置し、table.concat()関数を使用できます。この例は、COMBINE_HEADERS () の例に示されています。
長さ
文字列 s の長さは #s によって返されます。#演算子は、後で説明するように、配列テーブルでも使用されます。
優先順位
演算子の優先順位は、式内で実行される演算の順序を決定します。優先順位の高い演算は、優先順位の低い演算よりも優先されます。優先順位の順序は、いつものように括弧で上書きすることができます。たとえば、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.