1.Dart 數(shù)據(jù)類型、函數(shù)

Dart 總結

一 變量: 自動會類型推斷

dart : 有類型校驗

  var varstr = '';
  varstr = 1234;  //A value of type 'int' can't be assigned to a variable of type 'String'.

二 命名規(guī)則:

  • 變量名稱必須由數(shù)字、字母下劃線和美元符($)組成。
  • 注意:標識符開頭不能數(shù)字
  • 標識符不能是保留字和關鍵字。
  • 變量的名字是區(qū)分大小寫的: age和Age是不同的變量
  • 標識符(變量名稱)一定要見名思意:變量名稱建議用名詞,方法名稱建議用動詞

三 常量 : const , final 修飾符(永遠不改變的量,使用final 或 const 修飾,而不使用 var 或其他變量類型)

  1. const 值不變,一開始就得賦值; final 可以開始不賦值 只能賦一次值;
  2. final 不僅有 const的編譯時常量的特性,最重要的它是運行時常量,并且 final 是惰性初始化,既在運行時第一次使用前才初始化
  final a = new DateTime.now();
  print(a);

四 數(shù)據(jù)類型:

1.字符串

  // """ 三個單引號/雙引號,內(nèi)容可以換行 """
  var str = """這是第一行,
    這是第二行
    這是第三行 """;

2.字符串拼接

 String str1 = "1";
 String str2 = "2";
 print("$str1  $str2");
 print(str1 + str2);
 print(str1 + " " + str2);

3.數(shù)值類型 int double (int 必須是整形, double 既可以是整形 也可以是浮點行)

 int a = 123;
 double b = 23.5
 b = 20;  //會輸出 20.0

4.運算符 + - * /

5.布爾類型 bool : true/false
(1)bool

  bool flag1 = true;
  flag1 = false;
  //不能為其他值 flag1 = 123; //報錯

(2) 條件判斷語句

  var a = 123;
  var b = "123";
  if(a == b){ //不相等
  }else{
  }
  1. List(數(shù)組/集合)
 // (1)第一種定義List方式
  var l1 = ['aaa', 'bbb', 'ccc'];
  print(l1);

 // 其他方法: li.length,   l1[0]

 // (2)第二中定義List的方式
  var l2 = [];
  l2.add('aaa');
  l2.add('bbb');

 // (3)第三種定義制定類型的List
  var l3 = <String>[];
  1. Maps(字典)
 // (1) 第一種定義Map的方式  (key要加引號)
  var s = {
    'name' : '張',
    'age' : 15,
    'subject' : ['計算機','心里學'],
  };
  print(s);

  // (2)第二種定義Map的方式
   var student = new Map();
  student['name'] = '李';
  student['age'] = '15';
  student['subject'] = ['計算機','心里學'];
  print(student);

8.判斷數(shù)據(jù)類型
is 關鍵詞來判斷類型

五 運算符

1.算術運算符 : + - * / ~/(取整) %(取余)

int a = 5;
int b = 3;
print(a~/b);

2.關系運算符: == != > < >= <=
3.邏輯運算符: ! && ||
4.賦值運算符
(1)基礎賦值運算符 = ??=
(2)復合賦值運算符 += -= *= /= %= ~/=

 int b;
 b??=23;   //表示 如果b為空的話把 23賦值給b
 print(b);

 var a = 10;
 var b = a++;
 print(a);  //11
 print(b); //10

5.條件表達式
(1) if else switch case
(2) 三目運算符
(3) ??運算符

    bool flag = false;
    String a = flag ? 'true' : 'false';
    print(a);

    var a;
    var b = a ?? 10; //a 為空,10賦值給b; a不為空,a賦值給b
    print(b);

六 類型轉(zhuǎn)換

1.Number 與 String 類型之間的轉(zhuǎn)換
Number類型轉(zhuǎn)成String類型 toString()
String轉(zhuǎn)Number parse (建議轉(zhuǎn)double,因為int和double的字符都不會報錯; 或用 try catch)
2.其他類型轉(zhuǎn)換成Booleans類型
isEmpty:判斷字符串是否為空

    int a = 10;
    String str = a.toString();
    print(str);

    var myNum = int.parse(str);
    print(myNum is int);

    報錯:
    str = '123.1';
    myNum = int.parse(str);
    print(myNum is int);

    str = '123.1';
    var myDouble = double.parse(str);
    print(myDouble is double);

    String price = '';
    try{
      var myNum = double.parse(price);
      print(myNum);
    }catch(err){
      print(0);
    }

     var str = '123';
     if(str.isEmpty){
        print('空');
     }else{
        print('str不為空');
     }

     var myNum = 123;
     if(myNum == 0){
     }

     var myNum;
     if(myNum == nil){
        print('空');
     }else{
        print('str不為空');
     }

     var myNum = 0/0;
     print(myNum);
     if(myNum.isNaN){  //NaN 非數(shù) 表示未定義或不可表示的值
        print('NaN');
     }else{
        print('no NaN');
     }

七循環(huán)

  (1) for循環(huán)

   for(int i = 0; i < 10; i++){
      print(i);
   }
   List list = ['1','2','3'];
   for(var item in list){
      print(item);
    }
(2) while
while(表達式){

}
do{
  語句
}while(表達式);
注意:1.最后的分號不要忘記
    2.循環(huán)條件中使用的變量需要經(jīng)過初始化
    3.循環(huán)體中,應有結束循環(huán)的條件,否則會造成死循環(huán)。    


break 跳出循環(huán)體 / continue 跳過當前循環(huán),然后循環(huán)還會繼續(xù)執(zhí)行

八 集合

(1) List
(2) Set 最主要的功能是去除數(shù)組重復內(nèi)容
(3) Map

List里面常用的屬性和方法:

    常用屬性:
        length          長度
        reversed        翻轉(zhuǎn)
        isEmpty         是否為空
        isNotEmpty      是否不為空
    常用方法:  
        add         增加
        addAll      拼接數(shù)組
        indexOf     查找  傳入具體值
        remove      刪除  傳入具體值
        removeAt    刪除  傳入索引值
        fillRange   修改   
        insert(index,value);            指定位置插入    
        insertAll(index,list)           指定位置插入List
        toList()    其他類型轉(zhuǎn)換成List  
        join()      List轉(zhuǎn)換成字符串
        split()     字符串轉(zhuǎn)化成List

    List 提供的循環(huán)方法
        forEach     遍歷
        map         主要用于修改數(shù)據(jù)
        where       把滿足條件的返回一個集合
        any         只要集合中有滿足條件的就返回true
        every       每一個都要滿足條件返回true,否則返回 false
    List list = ['1','2','3'];
    print(list.reversed);
    List newList = list.reversed.toList();
    print(newList);

    var str = list.join('-');
    var newlist = str.split('-');
    print(list is List);

    myList.forEach((value){
      print("%value");
    })

    List myList = [1, 3, 4];

    forEach中只有一行代碼可以簡寫
    s.forEach((value)=>print(value));

//Map
    Map person ={
      "name":"張三",
      "age":"18",
    }
    person.forEach((key,value){
      print("$key,    $value");
    })
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容