dart系列之:dart语言中的内置类型
文章目錄
- 簡介
- Null
- 數字
- 字符串
- 布爾值
- 列表
- set和map
簡介
和所有的編程語言一樣,dart有他內置的語言類型,這些內置類型都繼承自Object,當然這些內置類型是dart語言的基礎,只有掌握了這些內置類型才能夠在使用dart語言的時候得心應手。
今天就給大家講解一下dart語言的內置類型。
Null
在dart中用null來表示空。那么null和Null有什么關系呢?
Null是一個類,先看下Null的定義:
class Null {factory Null._uninstantiable() {throw UnsupportedError('class Null cannot be instantiated');}external int get hashCode;/** Returns the string `"null"`. */String toString() => "null"; }可以看到Null類型的string表示就是null。而相應的null是一個關鍵字,其對應的就是Null類。
數字
dart中的數字對應的類是num,他有兩個子類,分別是int和double。
int表示不大于64 bits的整數。因為dart可以運行在不同的平臺中,所以不同平臺表示的范圍也是不同的。
在原生平臺,比如android或者IOS平臺,int的范圍可以達到 -2^63 到 2^63 - 1。 但是在web環境中,可表示的范圍是-2^53 到 2^53 - 1.
double相應的表示的是浮點類型。
對于數字來說,基本的運算操作符像是 +, -, / 和 *都是定義在num類中。當然還有其他一些常規的操作符。
如果需要更加復雜的運算,則可以使用dart:math庫。
下面是幾個數字使用的例子:
int age =18; int number= 20; double money = 10.1;字符串
字符串是經常會使用的一種類型。dart中字符串對應的類是String。也可以直接用字面量表示如下:
var name ='jack'; var site ="www.flydean.com";字符串可以用單引號也可以用雙引號來表示。dart中字符串使用的是UTF-16編碼。
dart中的字符串中,還可以帶上變量值,他的格式是 ${expression}.
var age=10; var words ='your age is ${age}!';兩個字符串可以用==來比較是否相等,字符比較的是對應的字符編碼序列,如果字符編碼序列相等,那么對應的字符串就相等。
字符串的連接可以使用+。
var hello ="hello " + "word";還有一種創建字符串的方法是使用三個單引號或者三個雙引號。
var string1= ''' this is a string! ''';var string2 = """ this is string again! """;默認情況下string中的字符表示就是字符本身,如果要轉換成其原始含義的話,則可以在字符串前面加上r:
var string3 =r'this is line one \n this is line two';布爾值
布爾值在dart中用bool來表示。bool值只有兩個字符串表示,分別是true和false。
因為dart是類型安全的,也就是說在需要使用bool類型的時候,不能用其他類型代替。
比如我們要判斷字符串是否為空,可以這樣判斷:
var name=''; if(name.isEmpty){do something }列表
dart中的列表用List來表示,當然也可以直接使用下面的字面量表示:
var list = [1, 2, 3];列表的index從0開始,以length-1結束。
從dart 2.3開始,引入了擴展符…和可為空的擴展符…? ,擴展符可以用將一個已知的list展開成其對應的元素,從而可以方便的構建list的組合:
var list = [1, 2, 3]; var list2 = [0, ...list];dart中提供一個很神奇的功能,就是可以在構建list的過程中使用if和for語句,來動態生成list中的元素:
var nav = ['Home','Furniture','Plants',if (promoActive) 'Outlet' ];或者:
var listOfInts = [1, 2, 3]; var listOfStrings = ['#0',for (var i in listOfInts) '#$i' ];set和map
dart中的集合用Set來表示。
set表示的是不重復的元素的集合,如下所示:
var names = {'jack', 'mark', 'max'};dart中的映射用Map來表示。
Map的創建和set很類似,但是包含了key和value:
var students = {'jack':18, 'mark':19, 'max':20};大家可以發現,set和map是很類似的,那么問題來了, 怎么表示一個空的set或者map呢?
因為set中的元素是單個的,而map中的元素是鍵值對,所以我們可以這樣的表示:
var names = <String>{}; var gifts = Map<String, String>();但是如果不指定類型,那么默認創建的就是一個map:
var map = {};要獲取map中的值,可以這樣使用:
var gifts = Map<String, String>(); gifts['first'] = 'partridge'; gifts['second'] = 'turtledoves';map和set都支持擴展符…和可為空擴展符…? , 同樣也支持集合內的if和for操作。
本文已收錄于 http://www.flydean.com/02-dart-buildin-type/
最通俗的解讀,最深刻的干貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!
歡迎關注我的公眾號:「程序那些事」,懂技術,更懂你!
總結
以上是生活随笔為你收集整理的dart系列之:dart语言中的内置类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系列之: 你知道查看文件空间的
- 下一篇: dart系列之:dart语言中的函数