差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
manual:reference:grammar:expression:main_page [2021/06/28 14:19] – 创建 jolamanual:reference:grammar:expression:main_page [2023/03/23 17:16] (当前版本) mikecovlee
行 1: 行 1:
 ====== Covariant Script 表达式 ====== ====== Covariant Script 表达式 ======
------ 
-\\ 
- 
 ===== 3.1 定义 ===== ===== 3.1 定义 =====
  
行 67: 行 64:
 ==== 3.3.1 右结合运算符 ==== ==== 3.3.1 右结合运算符 ====
  
-^  **运算符**  ^  **优先级**  ^  **结合律**  ^  **功能**  ^ +^  运算符  ^  优先级  ^  结合律  ^  功能 
-|  //表达式// **+** //表达式//  |  10  |  右  |  对数值进行数学加法运算或拼接字符串 +|  //表达式// ''+'' //表达式//  |  10  |  右  |  对数值进行数学加法运算或拼接字符串 
-|  //表达式// **-** //表达式//  |  10  |  右  |  对数值进行数学减法运算 +|  //表达式// ''-'' //表达式//  |  10  |  右  |  对数值进行数学减法运算 
-|  //表达式// ***** //表达式//  |  11  |  右  |  对数值进行数学乘法运算 +|  //表达式// ''*'' //表达式//  |  11  |  右  |  对数值进行数学乘法运算 
-|  //表达式// **/** //表达式//  |  11  |  右  |  对数值进行数学除法运算 +|  //表达式// ''/'' //表达式//  |  11  |  右  |  对数值进行数学除法运算 
-|  //表达式// **%** //表达式//  |  12  |  右  |  对数值进行数学取余运算 +|  //表达式// ''%'' //表达式//  |  12  |  右  |  对数值进行数学取余运算 
-|  //表达式// **^** //表达式//  |  12  |  右  |  对数值进行数学幂运算 +|  //表达式// ''^'' //表达式//  |  12  |  右  |  对数值进行数学幂运算 
-|  //表达式// **.** //表达式//  |  15  |  右  |  对各种对象进行访问 +|  //表达式// ''.'' //表达式//  |  15  |  右  |  对各种对象进行访问 
-|  //表达式// **->** //表达式//  |  15  |  右  |  对指针指向的各种对象进行访问 +|  //表达式// ''->'' //表达式//  |  15  |  右  |  对指针指向的各种对象进行访问 
-|  //表达式// **<** //表达式//  |  9  |  右  |  比较左侧数值是否小于右侧 +|  //表达式// ''<'' //表达式//  |  9  |  右  |  比较左侧数值是否小于右侧 
-|  //表达式// **>** //表达式//  |  9  |  右  |  比较左侧数值是否大于右侧 +|  //表达式// ''>'' //表达式//  |  9  |  右  |  比较左侧数值是否大于右侧 
-|  //表达式// **<=** //表达式//  |  9  |  右  |  比较左侧数值是否小于或等于右侧 +|  //表达式// ''<='' //表达式//  |  9  |  右  |  比较左侧数值是否小于或等于右侧 
-|  //表达式// **>=** //表达式//  |  9  |  右  |  比较左侧数值是否大于或等于右侧 +|  //表达式// ''>='' //表达式//  |  9  |  右  |  比较左侧数值是否大于或等于右侧 
-|  //表达式// **==** //表达式//  |  9  |  右  |  比较两侧表达式的值是否相等 +|  //表达式// ''=='' //表达式//  |  9  |  右  |  比较两侧表达式的值是否相等 
-|  //表达式// **!=** //表达式//  |  9  |  右  |  比较两侧表达式的值是否不相等 +|  //表达式// ''!='' //表达式//  |  9  |  右  |  比较两侧表达式的值是否不相等 
-|  //表达式// **&&** //表达式//  |  7  |  右  |  对两侧表达式进行与运算,若左侧为假则停止求值 +|  //表达式// ''&&'' //表达式//  |  7  |  右  |  对两侧表达式进行与运算,若左侧为假则停止求值 
-|  //表达式// **and** //表达式//  |  :::  |  :::  |  :::  |  +|  //表达式// ''and'' //表达式//  |  :::  |  :::  |  :::  |  
-|  //表达式// **||** //表达式//  |  6  |  右  |  对两侧表达式进行或运算,若左侧为真则停止求值 +|  //表达式// ''||'' //表达式//  |  6  |  右  |  对两侧表达式进行或运算,若左侧为真则停止求值 
-|  //表达式// **or** //表达式//  |  :::  |  :::  |  :::  |+|  //表达式// ''or'' //表达式//  |  :::  |  :::  |  :::  |
 ==== 3.3.2 左结合运算符 ==== ==== 3.3.2 左结合运算符 ====
  
-^  **运算符**  ^  **优先级**  ^  **结合律**  ^  **功能**  ^ +^  运算符  ^  优先级  ^  结合律  ^  功能 
-|  //表达式// **=** //表达式//  |  1  |  左  |  将右侧表达式的值赋予左边 +|  //表达式// ''='' //表达式//  |  1  |  左  |  将右侧表达式的值赋予左边 
-|  //表达式// **+=** //表达式//  |  1  |  左  |  对数值进行数学加法运算或对字符串进行拼接后再将其值赋予左边 +|  //表达式// ''+='' //表达式//  |  1  |  左  |  对数值进行数学加法运算或对字符串进行拼接后再将其值赋予左边 
-|  //表达式// **-=** //表达式//  |  1  |  左  |  对数值进行数学减法运算后再赋予左边 +|  //表达式// ''-='' //表达式//  |  1  |  左  |  对数值进行数学减法运算后再赋予左边 
-|  //表达式// ***=** //表达式//  |  1  |  左  |  对数值进行数学乘法运算后再赋予左边 +|  //表达式// ''*='' //表达式//  |  1  |  左  |  对数值进行数学乘法运算后再赋予左边 
-|  //表达式// **/=** //表达式//  |  1  |  左  |  对数值进行数学除法运算后再赋予左边 +|  //表达式// ''/='' //表达式//  |  1  |  左  |  对数值进行数学除法运算后再赋予左边 
-|  //表达式// **%=** //表达式//  |  1  |  左  |  对数值进行数学取余运算后再赋予左边 +|  //表达式// ''%='' //表达式//  |  1  |  左  |  对数值进行数学取余运算后再赋予左边 
-|  //表达式// **^=** //表达式//  |  1  |  左  |  对数值进行数学幂运算后再赋予左边  |+|  //表达式// ''^='' //表达式//  |  1  |  左  |  对数值进行数学幂运算后再赋予左边  |
 ===  3.3.2.1 绑定 ===  ===  3.3.2.1 绑定 === 
  
行 126: 行 123:
 ==== 3.3.3 特殊运算符 ==== ==== 3.3.3 特殊运算符 ====
  
-^  **运算符**  ^  **优先级**  ^  **结合律**  ^  **功能**  ^ +^  运算符  ^  优先级  ^  结合律  ^  功能 
-|  //表达式//**,**//表达式//  |  0  |  右  |  联接多个表达式并依次运算 +|  //表达式//'',''//表达式//  |  0  |  右  |  联接多个表达式并依次运算 
-|  //表达式//**:**//表达式//  |  4  |  右  |  建立左侧表达式的值到右侧的映射 +|  //表达式//'':''//表达式//  |  4  |  右  |  建立左侧表达式的值到右侧的映射 
-|  //表达式//**(**//参数列表//**)**   15  |  右  |  调用表达式表示的函数 +|  //表达式//''(''//参数列表//'')''   15  |  右  |  调用表达式表示的函数 
-|  //表达式//**[**//表达式//**]**   15  |  右  |  访问数组、哈希表或是字符串中的元素 +|  //表达式//''[''//表达式//'']''   15  |  右  |  访问数组元素映射类型元素值或是字符串中的元素 
-|  //表达式//**...**   20  |  无  |  若表达式的值为数组,则将其展开 +|  //表达式//''...''   20  |  无  |  若表达式的值为数组,则将其展开 
-|  **(**//表达式//**)**   无  |  无  |  创建子表达式  |+|  ''(''//表达式//'')''   无  |  无  |  创建子表达式  |
  
 逗号表达式将遵循从左到右的规则,其值为最后一个表达式的值 逗号表达式将遵循从左到右的规则,其值为最后一个表达式的值
  
-数组在访问时,若下标越界会自动增长,增长的部分填''0'';若下标为负则访问下标为长度-下标绝对值的元素,哈希表在访问时若映射不存在则将自动建立到''0''的映射+''array''数组在访问时,若下标越界会自动增长,增长的部分填''0''(''number''类型);若下标为负则访问下标为长度-下标绝对值的元素,''hash_map''(映射类型)在访问时若映射不存在则将自动建立到''0''的映射
  
 展开表达式的使用范围**仅限**函数调用时的参数列表和数组字面量的声明中 展开表达式的使用范围**仅限**函数调用时的参数列表和数组字面量的声明中