Dart入門之基礎(chǔ)數(shù)據(jù)類型


1.變量和常量

使用var關(guān)鍵字聲明變量,可賦予變量不同類型的值.未初始化時(shí),默認(rèn)為null.

    void main(){
      var a;  //未初始化,默認(rèn)為null
      
      a = 10; // 10

      a = " 字符串" 或 a = '字符串'  //dart中用雙引號(hào)還是單引號(hào)聲明字符串類型都是可以的

      a = 10.1;  //double類型

      final b = 10; //使用final關(guān)鍵字聲明一個(gè)只能賦值一次的變量
    
      const c = 10; //使用const關(guān)鍵字聲明的變量是一個(gè)編譯時(shí)常量
      c = 20; //? 給c重新賦值會(huì)報(bào)錯(cuò)
      
      final和const不能和var一起使用,使用final和const建議指定數(shù)據(jù)類型.
    
    //如果聲明時(shí),不想指定變量的類型,可以使用dynamic關(guān)鍵字.
   dynamic str = 'this is string';
   str = 10;  //str可以重新賦值為整型,str在這里是一個(gè)動(dòng)態(tài)的數(shù)據(jù)類型
    }

2.Dart中的數(shù)據(jù)類型

Dart中的數(shù)據(jù)類型包含以下幾種:num(數(shù)值型),string(字符串類型),boolean(布爾類型),map集合,list(數(shù)組),runes(用于在字符串中表示Unicode字符),symbols.

1.Number

  void main(){
    num a = 10; //整型
    a = 10.1 //浮點(diǎn)型  重新給a賦值,不會(huì)報(bào)錯(cuò),因?yàn)閚um包含兩種子類型:int和double.dart中沒有float類型,小數(shù)都是double.
    
    int b = 10;
    b = 10.1;  //?  已經(jīng)定義為整型的值,重新賦值為浮點(diǎn)型,會(huì)報(bào)錯(cuò)
    
    double c = 10.1; 
    c = 0;//? 已經(jīng)定位為浮點(diǎn)型的值,重新賦值為整型,會(huì)報(bào)錯(cuò)
  }
1.1 數(shù)值型的操作

基本操作除了運(yùn)算符:+,-,*,/,~/

  void main(){
    int i = 10;
    
    print(i.isOdd);//判斷是奇數(shù)
    print(i.isEven);//判斷是偶數(shù)
    
    // int值轉(zhuǎn)換為string
    String oneAsString = 1.toString();
    // double值轉(zhuǎn)換為string
    String piAsString = 3.1455.toStringAsFixed(2); //后面的意思是保留幾位小數(shù)
    
  }

2.String

  void main(){
    String string = "雙引號(hào)";
    String string = '單引號(hào)';
      
    //單雙引號(hào)里面可以嵌套使用引號(hào)
    String singleString = 'abc';
    String doubleString = "def";
    
    //單引號(hào)內(nèi)嵌套雙引號(hào)
    String mergeString  = '$singleString aaa "bbb" ${doubleString}';
    print(mergeString);//輸出 abc aaa "bbb" def
  
    //雙引號(hào)內(nèi)嵌套單引號(hào)(如果是表達(dá)式需要${表達(dá)式})
    String mergeString  = "${singleString.toUpperCase()} bbb 'aaa' ${doubleString.toUpperCase()}}";
    print(mergeString); //輸出 ABC bbb 'aaa' DEF

    //string轉(zhuǎn)換為int
    int a = int.parse('1');
    //string轉(zhuǎn)換為double
    double b = double.parse('1.5');
  }

3.boolean 布爾類型

為了表示布爾值始腾,Dart有一個(gè)名為bool的類型材失。boolean字符 true和false,它們都是編譯時(shí)常量哭懈。
assert是Dart語言內(nèi)置的斷言函數(shù),僅在檢查模式下有效.

// 檢查是否為空
var fullName = '';
assert(fullName.isEmpty);

// 為0檢查
var hitPoints = 0;
assert(hitPoints <= 0);

// 檢查是否為 null.
var unicorn;
assert(unicorn == null);

// 檢查是否為 NaN.
var iMeantToDoThis = 0 / 0;
assert(iMeantToDoThis.isNaN);

4.list集合(數(shù)組)

  //沒有類型限制的list,如下
  List list = ['one',2,false];//存放多個(gè)不同類型的對(duì)象

  //創(chuàng)建一個(gè)常量list,不可變的list
  List list = const[1,2,3];

  //創(chuàng)建指定類型的list
  List <String> list = ['one','two','three'];//對(duì)象全部為String類型
4.1數(shù)組常用的方法
  List list = [1,2,3,'Hello',true];

  //修改下標(biāo)為2的對(duì)象的值
  list[2] = 'sugar';//打印輸出:1,2,sugar,hello,true  
  
  //獲取list的長(zhǎng)度
  list.length 

  //向list中添加元素
  list.add('value');

  //向list 中指定下標(biāo)添加元素
  list.insert(1,'value');

  //移除list中的元素
  list.remove('value');

  //移除list中指定下標(biāo)的元素
  list.removeAt(2);

  //判斷l(xiāng)ist中是否包含某個(gè)元素
  if(list.indexOf('value'))

5. map集合

類似Objective-C中的字典Dictionary,映射是關(guān)聯(lián)鍵和值的對(duì)象,每個(gè)鍵key只能出現(xiàn)一次,但是value可以使用相同的值.

void main(){
    //創(chuàng)建map
  var mapList = {'first':'one','second':'two'};

  // 創(chuàng)建不可變的 Map
  var constLanguage = const {'fisrt': 'dart', 'second': 'java'};

  // 通過構(gòu)造器創(chuàng)建
  var initLanguage = new Map();
}
5.1 Map常見的方法
// 獲取長(zhǎng)度
print(map.length);  

// 判斷是否為空
print(map.isEmpty);     
print(map.isNotEmpty); 

// 獲取到所有的 key
print(map.keys);       

// 獲取到所有的 values
print(map.values);     

// 判斷是否包含某個(gè)key
print(map.containsKey("key"));   

// 判斷是否包含某個(gè)value
print(map.containsValue("key"));    


6. runes

在Dart中饭冬,runes是字符串的UTF-32代碼點(diǎn)使鹅。
Unicode為世界上所有書寫系統(tǒng)中使用的每個(gè)字母,數(shù)字和符號(hào)定義唯一的數(shù)值昌抠。表達(dá)Unicode代碼點(diǎn)的常用方法是\uXXXX患朱,其中XXXX是4位十六進(jìn)制值。要指定多于或少于4個(gè)十六進(jìn)制數(shù)字扰魂,請(qǐng)將值放在大括號(hào)中麦乞。String類有幾個(gè)屬性可用于提取符文信息。 codeUnitAtcodeUnit屬性返回16位代碼單元劝评。 使用runes屬性獲取字符串的符文姐直。


7.Symbols

Symbol對(duì)象表示在Dart程序中聲明的運(yùn)算符或標(biāo)識(shí)符。 您可能永遠(yuǎn)不需要使用符號(hào)蒋畜,但它們對(duì)于按名稱引用標(biāo)識(shí)符的API非常有用声畏,因?yàn)榭s小會(huì)更改標(biāo)識(shí)符名稱而不會(huì)更改標(biāo)識(shí)符符號(hào)。Symbols時(shí)編譯時(shí)常量姻成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末插龄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子科展,更是在濱河造成了極大的恐慌均牢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件才睹,死亡現(xiàn)場(chǎng)離奇詭異徘跪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)琅攘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門垮庐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坞琴,你說我怎么就攤上這事哨查。” “怎么了剧辐?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵寒亥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我荧关,道長(zhǎng)护盈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任羞酗,我火速辦了婚禮腐宋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘檀轨。我一直安慰自己胸竞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布参萄。 她就那樣靜靜地躺著卫枝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪讹挎。 梳的紋絲不亂的頭發(fā)上校赤,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天吆玖,我揣著相機(jī)與錄音,去河邊找鬼马篮。 笑死沾乘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浑测。 我是一名探鬼主播翅阵,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼迁央!你這毒婦竟也來了掷匠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤岖圈,失蹤者是張志新(化名)和其女友劉穎讹语,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂科,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡募强,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崇摄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片擎值。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逐抑,靈堂內(nèi)的尸體忽然破棺而出鸠儿,到底是詐尸還是另有隱情,我是刑警寧澤厕氨,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布进每,位于F島的核電站,受9級(jí)特大地震影響命斧,放射性物質(zhì)發(fā)生泄漏田晚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一国葬、第九天 我趴在偏房一處隱蔽的房頂上張望贤徒。 院中可真熱鬧,春花似錦汇四、人聲如沸接奈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽序宦。三九已至,卻和暖如春背苦,著一層夾襖步出監(jiān)牢的瞬間互捌,已是汗流浹背潘明。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秕噪,地道東北人钳降。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像巢价,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子固阁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容