iT邦幫忙

0

Dart 語言入門 3: 運算符號

運算子

說明 運算子 範例
一元後置 expr++,expr--,(),[],.,?. i++, i--, const[1,0],Test.fun(),Test?.fun
一元前置 -expr,!expr,~expr,++expr,--expr 3-1, !flag, ~flag, ++i, --i
乘,除,餘數,商數 *, /, %, ~/ 2*3, 6/3, 6%3, 6~/6
加,減 +,- 2+3, 3-2
移位(shift) <<,>>,>>> 7<<2(111變成11100,28), 7>>2(111變成001,1)
二進制 AND & 7&2
二進制 XOR ^ 7^2
二進制 OR | 7|2
關係,類型測試 >=,>,<=,<,as,is,is! 7>=2, 2<=7
相等判斷 ==,!= x==2, x!=2
邏輯 AND && x=0 && y=0
邏輯 OR || x=1 || y=1
Null 判斷 ?? var x = y ?? 0 (若y是null則x=0,y非null則x=y)
b ??= value;(僅當 b 為 null 時才賦值)
條件expr expr1 ? expr2 : expr3 x==2?y=3:y=4;
級聯cascade .. Object..fun1()..fun2()
賦值 = *= /= += -= &= ^= …… x=7, x*=7,...

補充說明

##級聯(cascade):可以讓你在同一個物件上連續呼叫多個物件的屬性或方法。舉例如下:

querySelector('#confirm') // 取得物件 (Get an object).
  ..text = 'Confirm'      // 使用物件的成员 (Use its members).
  ..classes.add('important')  //使用物件的方法
  ..onClick.listen((e) => window.alert('Confirmed!'));

以上的例子如同:

var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));

也可以巢狀套用你的級聯,舉例如下

final addressBook = (AddressBookBuilder()
      ..name = 'jenny'
      ..email = 'jenny@example.com'
      ..phone = (PhoneNumberBuilder()
            ..number = '415-555-0100'
            ..label = 'home')
          .build())
    .build();

位元運算

二進制位元的運算如下面的範例說明

void main() {
  var a = 2; // Bit 表示為 10
  var b = 3; // Bit 表示為 11

  var result; 
  result = (a & b);
  print("(a & b) => $result");
  result = (a | b);
  print("(a | b) => $result");
  result = (a ^ b);
  print("(a ^ b) => $result");
  result = (~b);
  print("(~b) => $result");
  result = (a < b);
  print("(a < b) => $result");
  result = (a > b);
  print("(a > b) => $result");  
}

https://ithelp.ithome.com.tw/upload/images/20200829/201218528CnnPj9U9k.png


尚未有邦友留言

立即登入留言