【Flutter 學習筆記二】Dart 的基礎概念和數據類型

在以前把環境折騰好了以後,咱們開始打基礎功,先把 dart 學好。php

dart 這個語言仍是比較奇怪的,以前根本沒聽過(多是我孤陋寡聞了),聽說有人問 flutter 開發者,爲何使用 dart 語言。開發者回答說:"dart 開發組就在咱們隔壁,因此咱們決定使用 dart" 😭數組

不過不要緊,全部的語言思想都差很少,有經驗的入門仍是比較簡單的。開始進入正題吧~ide

關於後面 dart ,代碼能夠在 dartPad 上運行函數

https://dartpad.dartlang.org/學習

基本概念

  1. 在 dart 中,全部的東西都是對象,不管是變量,數字或函數,全部的對象都是類的實例,全部的對象都從 Object 類繼承
  2. 儘管 dart 是強類型的,但類型申明是可選的,由於 Dart 能夠推斷出類型,若是要明確的不適用任何類型,請使用特殊類型 dynamic
  3. dart 支持頂級變量的定義
  4. dart 沒有 public,protected,private 的概念,若是函數或變量如下劃線 _ 開頭,則這個函數或變量屬於這個包私有

變量與常量

void main() {
    
  // 變量申明
  var name = 'enda';
  
  // 變量默認值爲 null
  int lineCount;
  print(lineCount); // null

  // 能夠在定義變量時指定變量的類型,經過指定變量類型,能夠減小編譯和運行時間
  String name = 'enda';
  

  // 常量定義 常量定義就不能修改
  
  final firstName = 'E';
  // 或者申明類型的常量定義
  final int age = 20;
  
  const lastName = 'D';
  
}

數據類型

dart 內置了幾種常見的數據類型ui

  • numbers
  • strings
  • booleans
  • lists (數組)
  • maps
  • runes (用於在字符串中表示 Unicode 字符)
  • symbols

number 類型

number 類型分爲 int 和 double code

int 的取值範圍爲 -253 to 253 - 1
double 爲 64 位長度的浮點類型對象

number 常見的操做方位包括: +,-,*,/ 以及位移 >>繼承

int 類型轉換索引

void main() {
    
  // 字符串轉 int
  var one = int.parse('1');
  
  assert(one == 1);
  
  // 字符串轉浮點
  var onePointOne = double.parse('1.1');
  
  // int 轉字符串
  String oneAsString = 1.toString();
  
  // double 轉字符串
  String piAsString = 3.14159.toStringAsFixed(2);
  
}

String 類型

可使用單引號或雙引號建立字符串

字符串定義

var str1 = '單引號定義';
  
var str2 = "雙引號定義";
  
var str3 = "轉義 \'s ";

字符串鏈接

字符串鏈接,使用 + 操做符

// 字符串鏈接可使用 + 號
  var str4 = str1 +'-'+ str2;

多行字符串

使用 """''' 來定義多行字符串

// 多行字符串
  
var str5 = '''
多行字符串的定義
簡單吧
''';

raw 字符串

使用 r 來定義

// 使用 r 修飾,代表是 raw 類型的字符串
var str6 = r"In a raw string, even \n s";

Boolean 類型

bool 類型只有兩個值 truefalse
dart 對 bool 值的檢查是強類型檢查,因此不能和 php 同樣去依賴強轉檢查
咱們能夠寫成下面這樣

// 檢查是否爲空字符串
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);

List 類型

幾乎每種語言中最多見的集合多是數組或有序的對象。在 dart 中,數組是 LIST 對象

定義

var list = [1,2,3];

使用

dart 的 LIST 索引從 0 開始

list[1] = 10;

list.length; // 獲取長度

Maps 類型

map 將 key 和 value 關聯到一塊兒,key 必須是惟一的

定義

// 第一種定義
var gifts = {
    // key     value
    'first' :  'partridge',
    'second':  'turtledoves'
};

// 第二種定義
var gifts2 = new Map();
gifts2['first'] = 'partridge';

使用

// 獲取值
gifts['first'];

// 判斷 key 是否存在
assert(gifts['fifth'] == null);

// 獲取長度
gifts.length;

Runes 類型

Dart 中 runes 是 UTF-32 字符集的 string 對象。
codeUnitAt 和 codeUnit 用來獲取 UTF-16 字符集的字符。
使用runes 來獲取 UTF-32 字符集的字符。

Runes input = new Runes(
      '\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');

學習資源

  1. A Tour of the Dart Language
  2. https://www.jianshu.com/p/b21...
  3. 學習交流 QQ 羣 (826912082)
相關文章
相關標籤/搜索