The JavaScript Handbook
0 码力 | 56 页 | 577.92 KB | 2 年前3
从零蛋开始学 RustRust 运算符 运算符用于对数据执行一些操作。 被运算符执行操作的数据我们称之为操作数。 例如我们常见的加法运算,那么加号(+)就是一个运算符。 例如 7 + 5 = 12 7 和 5 我们称为 运算符加号(+)的操作数,而 12 则运算符操作的结果。 Rust 语言支持以下四种运算符 算术运算符 位运算符 ● 关系运算符 ● 逻辑运算符 ### 8.1 算术运算符 算术 算术运算符就是我们日常所使用的加减乘除求余五则运算。 下表列出了 Rust 语言支持的所有算术运算符。 在下表中,我们假设 a = 10 且 b = 5。 |名称|运算符|范例| |---|---|---| |加|\+|a+b 的结果为 15| |减|\-|a-b 的结果为 5| |乘|\*|a\*b 的结果为 50| |除|/|a / b 的结果为 2| |求余|%|a % b 的结果为 0| 注意: Rust 语言不支持自增自减运算符 ++ 和 --。 #### 8.1.1 范例 下面的范例演示了我们上面提到的所有算术运算符。 fn main() { let num1 = 10; let num2 = 2; let mut res:i32; res = num1 + num2; println("Sum:{}",res);0 码力 | 168 页 | 1.24 MB | 2 年前3
Java 应用与开发 - Java 语言基础与流程控制3. 关键字与标识符 4. 运算符与表达式 5. 从键盘输入数据 ## ▶ 流程控制 1. 语句和复合语句 2. 分支结构(选择结构) 3. 循环结构 4. 跳转语句 ## 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 ## 接下来 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 1234; //定义整形变量MyInt String myString = "" + MyInt; //将整型数据转换成了字符串 ## 接下来 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 ## 常量 ## 变量的属性 变量名 ▶ 类型 值 ▶ 地址 ## 常量 整型常量 八进制、十六进制、十进制长整型后需要加 1 i, j = 0; i = 8; float k; k = 3.6f; Java 语言程序中可以随时定义变量,不必集中在执行语句之前。 ## 接下来 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 ## 关键字与标识符 ## ✿ 关键字(Java 保留字) |abstract|assert|boolean|break|byte|case|0 码力 | 37 页 | 685.82 KB | 2 年前3
C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming• 或者更满足“对称强迫症”的: • (cond) * a + !(cond) * b // 方法 2 • 还有一种“摆烂”的做法: • (cond? a:b) // 方法 3 - 三目运算符通常会变成和 if-else 一样的分支,同样会生成条件跳转指令,理应一样低效。但是有时候编译器会检测到,可以帮你自动优化成无分支版本的。 ## “妙用加减乘”进行无分支优化的通用公式 • 我比较喜欢方法 randint ## 不同写法的性能测试 可以看到不论是哪个优化级别,“妙用加减乘”的效果都是碾压 ifelse 的。 “摆大烂”的效果和 ifelse 几乎一样,也就是说根本没用,三目运算符还是生成了低效的跳转指令,自己不上进,还指望编译器来救你?你还不如坐等天上掉馅饼。 。 可惜另一个 if-else 的条件跳转指令(js)没有被成功优化掉(编译器具有短视性)。 可以看到“摆烂”版本的三目运算符?:和 if-else 其实是一样的,也只优化掉了其中一个条件跳转。 但是在“妙用加减乘”的版本里,两次比较依然都是高效的无分支指令(setg 和 cmovbe)。 _ZL12ifelse_clampi:0 码力 | 47 页 | 8.45 MB | 2 年前3
Julia 1.10.7 Documentation0 码力 | 1691 页 | 6.34 MB | 1 年前3
阮一峰 JavaScript 教程null, undefined 和布尔值 数值 字符串 对象 函数 数组 运算符 算术运算符 比较运算符 布尔运算符 二进制位运算符 其他运算符,运算顺序 语法专题 数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标识符 - 注释 - 区块 - 条件语句 - if 结构 - if...else 结构 - switch 结构 - 三元运算符?: - 循环语句 - while 循环 - for 循环 - do...while 循环 - break 语句和 continue 后面的表达式之中,不要混淆赋值表达式(=)、严格相 等运算符(___)和相等运算符(==)。尤其是赋值表达式不具有比较作用。 1. var x = 1; 2. var y = 2; 3. if (x = y) { 4. console.log(x); 5. } 6. // "2" 上面代码的原意是,当 ✗ 等于 ✓ 的时候,才执行相关语句。但是,不小心将严格相等运算符写成赋值表达式,结果变成了将0 码力 | 540 页 | 3.32 MB | 1 年前3
Object Pascal 参考手册(Ver 0.1) 10^{6} $ 和 $ 12.25 \times 10^{6} $ 都表示 $ 12.25 \times 10^{6} $ 。 $前缀表示一个 16 进制数字,比如$8F。没有“-”号运算符的数字被认为是正数。在赋值时,若它的值在接收者的数据类型范围之外,将产生一个错误,除非它是整数类型(32 位整数),此时将引发一个警告,并且,values exceeding the positive 1" 和 "Line 2" 之间放一个回车(#13)换行(#10)符。但你不能使用这种方式组合两个引用串,因为两个连续的单引号被解释为一个单引号。要组合多个引用串,可以使用 “+” 运算符,或简单地把它们合并成一个引用串。 常量字符串的长度是它所包含的字符个数。一个任意长度的字符串,与任何字符串(string)类型以及 PChar 类型是兼容的;一个长度为 1 的字符串,与任何字符 杂的表达式由简单表达式使用运算符、函数调用、集合构造器、索引和类型转换构成。 ## Operators(运算符) ## About operators(关于运算符) 运算符就像 Object Pascal 的内置函数,它是语言的一部分。例如,表达式 $ (X+Y) $ 由变量 X 和 Y(X、Y 称为运算数或操作数,`operator,`)通过 “+” 运算符计算而得。当 X 和 Y 表示整数或实数时,0 码力 | 168 页 | 868.25 KB | 2 年前3
Nim 2.0.2 中文手册Nim语言使用"扩展BNF"来解释结构,(a)* 表示 0 个或多个 a,a+ 表示 1 个或多个 a,(a)? 表示 1 个可选的 a,圆括号用来分组元素。 & 是预先运算符;&a 表示期望一个 a,但没有用掉,而在之后的规则中被消耗。 和 / 符号用来标记备选项,优先级最低。/ 是有序选择,要求解析器按照给定的顺序来尝试备选项,/ 常用来消除语法二义性。 athsf{elif}\mathsf{expr}::{\mathsf{stmts}})*(\mathsf{else}\mathsf{stmts})? $$ 二元的 $ \wedge* $ 运算符表示为 0 或更多,由第二个参数做为间隔; $ \wedge+ $ 表示 1 或更多。 $ \wedge+ $ b 是 $ \wedge(\wedge b a) $ 的简写, $ \wedge\wedge\wedge 目前,任何序数值大于 127 的 Unicode 字符(非 ASCII)都被归类为 letter "字",因而可以做为标识符的一部分,但以后的语言版本可能会将一些 Unicode 字符指定为运算符。 以下关键词被保留,不能作为标识符使用: addr and as asm bind block break case cast concept const continue converter0 码力 | 127 页 | 7.05 MB | 1 年前3
ECMAScript规范 第三版 中文版RIError(唯一资源定位符错误)。 ECMAScript 还定义了一个内置运算符(operators)集合。严格地说,它们可能不是函数或方法。ECMAScript 运算符包含了各种各样的操作:乘法运算符,加法运算符,位移运算符,关系运算符,相等关系运算符,二元位操作运算符,二元逻辑运算符,分配运算符,逗号运算符。 ECMAScript 语法被特意设计成类似 Java 的语法。ECMAScript 或空白中的一个。源代码文本被从左到右扫描,重复地把最长的可能的字符序列作为下一个输入元素。 词法文法中有两个目标符。符号输入分隔元素在其它语法文法中上下文中可以是一个除号(/)或除法赋值(/=)运算符。符号输入元素正则表达式在其它语法文法上下文中使用。 需要注意的是,除号和正则表达式常量存在于语法文法中的上下文中,且都被语法文法允许;不论如何,在斜线号不被识别为正则表达式常量的开始这一情况下, here] 表达式 opt ; Throw 语句: throw [no 行结 束符 here] 表达式; 这些非严格产生式的实际效果如下所示: 若遇到托肯 ++ 或 --,解析器将视其为一个后缀运算符时,且在提前托肯与托肯 ++ 或 -- 之间有至少一个行结束符,则在托肯 ++ 或 -- 前自动插入一个分号。 - 若遇到托肯 continue, break, return, 或 throw, 且在下一个托肯之前遇到一个行结束符0 码力 | 58 页 | 563.06 KB | 2 年前3
阮一峰 《ECMAScript 6入门》 第三版ES2015)。2016年6月,小幅修订的《ECMAScript 2016标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的 includes 方法和指数运算符),基本上是同一个标准。根据计划,2017年6月发布 ES2017 标准。 因此,ES6 既是一个历史名词,也是一个泛指,含义是5.1版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 "undefined" 上面代码中,`undeclared_variable` 是一个不存在的变量名,结果返 回“undefined”。所以,在没有 let 之前,typeof 运算符是百分之百安全的,永远不会报错。现在这一点不成立了。这样的设计是为了让大家养成良好的编程习惯,变量一定要在声明之后使用,否则就报错。 有些“死区”比较隐蔽,不太容易发现。 function bar(x let [x, y = 'b'] = ['a', undefined]; // x='a', y='b' 注意,ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于 undefined,默认值是不会生效的。 let [x = 1] = [undefined]; x // 1 let [x =0 码力 | 679 页 | 2.66 MB | 2 年前3
共 282 条
- 1
- 2
- 3
- 4
- 5
- 6
- 29













