Flutter 變量

一拯辙、重要概念

  • 一切變量都是對象郭变,包括數(shù)字,函數(shù)和null
  • 對象是類的實例,所有類都繼承與Object
  • 強類型但支持類型推斷
  • 如果不想制定具體類型可以使用 dynamic
  • 支持泛型饵较,比如List<int> 或者 List<Dynamic>
  • 支持頂層函數(shù)拍嵌、類方法、實例方法和嵌套函數(shù)
  • 支持頂層變量循诉、類變量横辆、實例變量和局部變量。

二茄猫、變量的私有和公開

Dart 變量只有私有和公開兩種類型

  • _下劃線開頭變量為私有狈蚤、只能在Library中使用
  • 標識符只能以字母或者下劃線大頭、后面跟任意多個字母划纽、數(shù)字或者下劃線字符
  • 表達式在運行時可以求值脆侮,而語句不可以
  • 代碼問題分為 warningerror兩種類型, warning不會阻止程序的運行,但是error會阻止程序運行
  • error分為編譯時錯誤運行時錯誤兩種,運行時錯誤會導(dǎo)致拋出異常

三勇劣、變量

  • 變量類型可以自動推斷靖避,也可以顯示指定
  • 為初始變量值都為null包括數(shù)字
  • 如果某個變量值在定義之后不會再改變,那就聲明為final或者const
  • finalconst 變量只能賦值一次比默,但是 const變量在編譯時候
  • finalconst變量必須在定義時候就完成初始化幻捏,
  • const 變量的值必須為編譯時常量,包括數(shù)字和字符串字面量命咐、其它常量算數(shù)運算結(jié)果
  • 初始化const 變量可以省去前面的const 應(yīng)為const肯定是常量
  • 常量是防止內(nèi)容變化篡九、常量避免變量尋址、final變量用來提升代碼安全性
void main() {
  var name = 'Jagger Gao';
  String nickname = 'tianhuao';

  var n; // null 如果沒有賦值
  print(n);
  
  final s = 'dart final'; // 運行時決定時候 如果需要 是在運行時候得到的值醋奠,可以使用 final
  const c = 'dart const';
  
  const r = 10;
  const double area = 3.1e3344 * r * r; // 編譯時候可以確定下來
  var v1 = const []; // 常值 空變量
  final v2 = const []; // 長治
  const v3 = []; // 常量執(zhí)行的值榛臼,只能是 
  v1 = [1, 2, 3]; // 對變量可以再次賦值
}

四、哈希表

  • 哈希表是表示關(guān)聯(lián)件和關(guān)聯(lián)值窜司,鍵和值可以是任意類型對象沛善,但是鍵必須唯一
  • 私用[]操作符來操作哈希表
  • 使用哈希表字面量使用const 聲明常量

五、符文

  • Rune是由 UTF32碼點(Code Point) 組成的字符串例证,一個Rune字符對應(yīng)一個Unicode字符
  • 碼點 一般使用4 個十六進制字符串\uxxxx 來表示路呜,如果超過 4 個 則需要使用{} 將使用十六進制字符括起來
  • 字符串Rune 直接可以互相轉(zhuǎn)換
 var clapping = '\u{1f44f}'; // 超過一個字符使用大括號 通過 \u +  {} 表示 長度 為 2
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList()); // 碼點序列表示

六、布爾類型

  • 只有兩個值truefalse 都是編譯時常量
  • 需要布爾類型织咧,必須使用布爾值

七胀葱、列表 List

  • 列表就是其它語言中的數(shù)組,用來表示對象序列
  • 列表的索引號從開始笙蒙,到list.length-1
  • 在列表字面量前使用const 來聲明常量
  • 使用 [] 操作符來操作列表的元素

例子

void main() {
  
  var x = 1; // 自動推斷為常數(shù)
  var hex = 0xDEADBEEF;
  print(hex);
  
  var y = 1.1; // 數(shù)字字面量 
  var exponents = 1.42e5; // 科學(xué)計數(shù)法
  
  print('輸出當(dāng)前exponenets ${ exponents }'); // 
  
  double z = 1; // 明確變量類型
  
  var one = int.parse('1'); // 字符串類型轉(zhuǎn)換得到相應(yīng)整型
  assert(one == 1);
  
  var onePointPine = double.parse('1.1'); //
  assert(onePointPine == 1.1); // 斷言失敗會拋出異常
  
  String piAsString = 3.1415926.toStringAsFixed(2); // 轉(zhuǎn)換成字符串并保留小數(shù)點后面指定位數(shù)
  print('piAsString ${ piAsString }'); // 
  assert(piAsString == '3.14'); // 斷言失敗會拋出異常
 
  // 左移運算
  assert((3 << 1) == 6);  
  var leftGo = 3 << 1;
  print('leftGo ${ leftGo }'); // 
  
  // 右移運算
  assert((3 >> 1) == 1); 
  var rightGo = 3 >> 1;
  print('rightGo ${ rightGo }'); // 
}
  • 兩個字符串插值表達

     // 字符串的插值
      var insetStr = 'INSERT  VALUE';
      var completeInsert = 'my  inset String $insetStr with Result';
      print('completeInsert ${ completeInsert }'); // 
    
  • 字符串拼接操作

     // 使用 + 號 拼接字符串 
      var firstStr = 'INSERT  VALUE';
      var sendStr = 'my  inset String with Result';
      var reusltComplete =  firstStr + sendStr;
       print('reusltComplete ${ reusltComplete }'); // 
      
     
      
     
    
  • 換行的方式

    使用 ’‘’ 或者 “”“ 三單引號 和 三雙引號

     //  使用 ’‘’ 或者 “”“ 三單引號 和 三雙引號
      var s1 = '''
      you can create
      muti-line  sting.
      ''';
       print('s1 ${ s1 }'); // 
       
        /// 進行相應(yīng)的換行操作
      var s2 = 'you can use \n line feed';
      print('s2進行換行操作 ${ s2 }'); //
      
      /// 如果前面有 r 字符標識不做轉(zhuǎn)義
      var s3 = r'you can use \n line feed';
      print('s3進行換行操作 ${ s3 }'); // 保持原樣輸出
    

0/0 問題不會拋出異常(需要注意)

iMeantToDoThis.isNaN 進行判斷

// -------
  var unicorn;
  assert(unicorn == null); // 進行斷言
  
  // 不會拋出異常
  var iMeantToDoThis = 0/0抵屿;
  assert(iMeantToDoThis.isNaN); // 進行斷言
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捅位,隨后出現(xiàn)的幾起案子轧葛,更是在濱河造成了極大的恐慌搂抒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尿扯,死亡現(xiàn)場離奇詭異求晶,居然都是意外死亡,警方通過查閱死者的電腦和手機衷笋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門芳杏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辟宗,你說我怎么就攤上這事爵赵。” “怎么了泊脐?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵空幻,是天一觀的道長。 經(jīng)常有香客問我容客,道長秕铛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任耘柱,我火速辦了婚禮如捅,結(jié)果婚禮上棍现,老公的妹妹穿的比我還像新娘调煎。我一直安慰自己,他們只是感情好己肮,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布士袄。 她就那樣靜靜地躺著,像睡著了一般谎僻。 火紅的嫁衣襯著肌膚如雪娄柳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天艘绍,我揣著相機與錄音赤拒,去河邊找鬼。 笑死诱鞠,一個胖子當(dāng)著我的面吹牛挎挖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播航夺,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蕉朵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阳掐?” 一聲冷哼從身側(cè)響起始衅,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冷蚂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后汛闸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝙茶,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年诸老,在試婚紗的時候發(fā)現(xiàn)自己被綠了尸闸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡孕锄,死狀恐怖吮廉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情畸肆,我是刑警寧澤宦芦,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站轴脐,受9級特大地震影響调卑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜大咱,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一恬涧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碴巾,春花似錦溯捆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至煮仇,卻和暖如春劳跃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浙垫。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工刨仑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夹姥。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓杉武,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佃声。 傳聞我的和親對象是個殘疾皇子艺智,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359