个人学习用
不严谨
学习的话请看别的博客
算数运算符
void main() {
/**
* 算数运算符
* + 加
* - 减 ,或者负数
* * 乘
* / 除
* ~/ 除并取证
* % 取模
*
* ++ 自增
* -- 自减
*/
print(2 + 3); //加
print(3 - 2); //减
print(3 - 5 == -2); //负数
print(3 * 2); //乘
print(3 / 2); //除
print(3 ~/ 1); //取余数
print(3 % 2); //取模
print('=========');
int i = 1;
print(++i); //2
print(i++); //2
print(++i); //4
print(i--); //4
print(i--); //3
print(--i); //1
}
关系运算符
void main() {
/**
* == 相等
* != 不等
* > 大于
* < 小于
* >= 大于等于
* <= 小于等于
*
*/
print(1 == 1);// 相等 true
print(1 != 1);// 不等 false
print(1 < 1);// 小于 false
print(1 <= 1);// 小于等于 true
print(1 > 1);// 大于 false
print(1 >= 1);// 大于等于 true
}
类型判断运算符
void main() {
/**
* as 类型转换
* is 判断是不是某种类型,是返回true
* is! 判断不是某种类型,不是返回true
*/
Object i = 1;
print(i as int); //转换成int类型 1
print(i is int); //判断是不是int类型 true
print(i is double); //判断是不是double类型 false
print(i is! int); //判断不是int类型 false
print(i is! double); //判断不是double类型 true
}
赋值运算符
void main() {
/**
* 赋值运算符
*
* = 直接赋值
* ??= 如果左边为null,就赋值,左边不为null就不赋值
* += 加等
* -= 减等
* *= 乘等
* /= 除等
* %= 取模等
* ~/= 取余等
* ^=
* >>=
* <<=
* &=
* |=
*/
int a = 3;
double d = 3;
//进行运算
print(a = 2); //2 赋值
a = 3;
print(a ??= 2); //2 a为空的话再赋值,不为空不赋值
a = 3;
print(a += 2); //5 加等
a = 3;
print(a -= 2); //1 减等
a = 3;
print(a *= 2); //6 乘等
print(d /= 2); //1.5除等
a = 3;
print(a %= 2); //1 取模等于
a = 3;
print(a ~/= 2); //1 取余等于
a = 3;
print(a ^= 2); //1 位取反运算等于
a = 3;
print(a >>= 2); //0 右移两位等于
a = 3;
print(a <<= 2); //12 左移两位等于
a = 3;
print(a &= 2); //2 位与运算等于
a = 3;
print(a |= 2); //3 位或运算
}
逻辑运算符
void main() {
/**
* 逻辑运算符
*
* ! 表示结果取反
* || 逻辑或
* && 逻辑与
*/
int a = 1;
int b = 1;
print(!(a == b || a >= b)); //false
print(!!(a == b || a >= b));//true
print(a == b || a >= b); //true
print(a == b && a < b); //false
}
按位和位移运算符
void main() {
/**
* 按位和位移运算符
*
* & 按位与,都是1 才是1
* | 按位或,有1就1
* ^ 按位异或,有0就0
* ~ 按位取反,1变0,0变1
* << 按位左移
* >> 按位右移
*/
final value = 0x22; //十六进制 的 34
final bitmask = 0x0f; //十六进制的 15
print(value); // 34
print(bitmask); // 15
print(value & bitmask); // 2
print(value | bitmask); // 47
print(value ^ bitmask); // 45
print(value & ~bitmask); // 32
print(value << bitmask); // 1114112
print(value >> bitmask); // 0
}
条件表达式
void main() {
/**
* 条件 ? 表达式1 : 表达式2
*
* 表达式1 ?? 表达式2 //如果表达式1不为空,则返回表达式1,如果表达式1位空,返回表达式2
*
*
*/
int a = 0;
print(a > 0 ? a : a = 3); //3
print(a > 0 ?? a <= 0); //true
}
级联运算符
void main() {
/**
* .. 级联运算符,就相当于链式调用
*
*
*/
}
其他运算符
void main() {
/**
* 其他 运算符
*
* () 使用方法,或者代表改变优先级
* [] 访问List数组中的特定位置元素
* . 成员访问符号
* ?. 安全操作符: 调用的时候先判断 是不是为空,如果为空直接输出空,不为空再调用
*
*/
var clazz = new MyClazz();
clazz.printF();
List list = [1, 2, 3];
int a = list[1]; //2
print(a);
print(list?.length); //如果 list为空的话,直接返回null,有数据才能使用length
}
class MyClazz {
void printF() {}
}
来源:CSDN
作者:良浩
链接:https://blog.csdn.net/zlhyy666666/article/details/104581099