天天看點

Flutter之Dart文法(一)資料類型

  • 變量與常量

Dart中用var聲明一個變量,如果想設定一個變量不可變,那麼可以使用final或者const修飾。

var number;
number = 12;
print("the number is $number");

number = "20";
print(number);

final sum = 10;

const count = 2;
           
  • 字元串

字元串的幾種建立方式

  1. 使用單引号、雙引号
  2. 使用三個引号、雙引号建立多行字元串
  3. 使用r建立原始字元串,使轉義字元無效
var a = 'hahha';
  print(a);
  var b = "hoho";
  print(b);
  
  var c = ''' I
  have
  a
  dream
  !
  ''';
  print(c);

  var d = """do
  you
  have
  dream
  ?
  """;
  print(d);

  var e = "can \nyou \nuse \nflutter ?";
  var f = r"can \nyou \nuse \nflutter ?";
  print(e);
  print(f);
           

輸出結果

//輸出結果
/*
hahha
hoho
 I
  have
  a
  dream
  !

do
  you
  have
  dream
  ?

can 
you 
use 
flutter ?
can \nyou \nuse \nflutter ?

*/
           

字元串操作

  1. 運算符 + 、*、===、[]
String a = "11";
    print(a + a);
    print(a * 3);
    print(a == "22");
    print([a,a,a,a]);
           
  1. 插值表達式${}
  2. 常用屬性length、isEmpty、isNotEmpty
  3. 常用方法
//contains
    String str1 = "i am a ios developer";
    String subStr = "ios";
    if (str1.contains(subStr)) {
      print("str1 contains subStr");
    }

    // substring
    String subStr1 = str1.substring(12);
    String subStr2 = str1.substring(8,10);
    print("frist subString is $subStr1 , second subString is $subStr2");

    // startsWith
    bool isStart = str1.startsWith("i");
    if (isStart) {
      print("object");
    }
    // endsWith
    bool isEnd = str1.endsWith("developer");
    if (isEnd) {
      print("object");
    }

    str1.indexOf("ios");
    str1.indexOf("i",2);
    str1.lastIndexOf("i");
    str1.lastIndexOf("i",2);

    String upStr = str1.toUpperCase();
    String lowerStr = upStr.toLowerCase();
    print(upStr + lowerStr);

    str1.trim();
    str1.trimLeft();
    str1.trimRight();

    str1.split("ios");
    str1.replaceAll("ios", "flutter");
           
  • List

dart中的數組分為可變數組和不可變數組,而且數組裡面可以放不同類型的資料。List也提供了很多便捷的方法分。

//可變數組
    var list = [1,2,3];
    //不可變數組
    var list2 = const [1,2,3,4];
    //數字裡面可以放不同類型的資料
    var list3 = [1,2,"ios",list];
    //常用方法
    print(list.length); //擷取長度
    list.add(4);        //添加元素
    list.remove(4);     //移除元素
    list3.insert(3, "android");  //在指定索引添加元素
    var index = list3.indexOf("ios");  //傳回元素的索引
    list3.shuffle();  //打亂數組裡面的順序
    //周遊數組
    list3.forEach((element) {
      print(element);
    });
           
  • Map

在Dart中,Map用key-value形式儲存,key和value都能是任何類型的對象,key唯一。Map同樣也分為可變和不可變兩種。

//建立可變Map
    Map person = {
      "name": "xiaoming",
      "height":180,
      "age":29,
    };
    //建立不可變Map
    Map dog = const {
      "name": "xiaohua",
      "kind": "erha",
    };
    person.remove("age"); //移除key age
    person.clear(); //清除map
    person.addAll(dog); //把狗變成人了

    person.containsKey("name");   //判斷key中是否有“name”
    person.containsValue("xiaoming"); //判斷value中是否有“小明”
    var values = person.values; //擷取所有value
    var keys = person.keys;  //擷取所有key
    //周遊Map
    person.forEach((key, value) {
      print("dog de $key is $value");
    });