Dart语言--基础内容
生活随笔
收集整理的這篇文章主要介紹了
Dart语言--基础内容
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎
主函數
void main ( ) { }
聲明變量
- var a num a int a double a bool a = true
- final b = 0; 聲明只能賦值一次的變量
- const a = 1; 常量
- var a = const [1,2]; 聲明一個不可變的list
數據類型
數據類型
- Number
- Int --整數型
- double -- 浮點型
- String
- Boolean
- List -- 數組
- Map -- 鍵值對
- Number
特殊運算符 ~/ 向下取整
- 字符串操作
''' hello dddd''' 表示多行字符串,保留換行
'hello \n Dart' 會換行
String aa = r''hello \n Dart" 不會換行.會輸出\n
'abc' * 2 == 'abcabc'
'abc'[1] == 'b'
字符串插值 " a + b = ${a + b}" ${xx}是個表達式 只有一個變量插值可省略寫成 $a
Map鍵值對
- 創建 var qq = {'first' : 'Dart' , 'second' : 'java'};
- 創建不可變Map var q = const { ,,,, }
- 構造創建 var q = new Map()
- 獲取value qq['frist']
- 循環傳遞兩個值 qq.forEach ( f ); void f( key , value ){.......}
- dynamic 類型 -- 動態類型
- var a = 10; a = "xxx";
- dynamic a = 20; a="xxx";
- 泛型應用: var lis = new List\<dynamic\>(); 這樣聲明的lis 可以使用各種類型的數據
運算符
- ??= b ??= 10; b是空的則是10,有值則不做改變.
- a~/=b 類似于 a+=b
- var c = a ?? b a為空時表達式為b的值
函數
- void main () {} void位置是返回類型 void指的是不需要返回類型
- Dart定義函數 xxx(){} js中定義函數 function xx () {}
- void fun(String name , int age) {xxxx}
- 可選參數寫法
- fun(String name , {int age, String kk}) fun('張三',age:20) 位置不固定
- fun(String name , [int age , String kk]) fun('張三' , 20 ) 位置固定
- 參數默認值
- fun(String name , {int age = 30, String kk})
- 匿名方法
- () {} 可賦值給 變量 或者直接調用 .. 不能直接定義在最外層
- ((){})() 自調.自執行
面向對象
class-類
class 聲明類 new創建對象.new可省略 所有對象默認繼承于Object類
class 屬性默認有getter和setter方法--java需要自定義
class final聲明的屬性是只讀的
class 方法不能重載
- //舉例 class Person {String name;int age;void work(){print("name is $name , age is $age")},Person (String name , int age){//構造方法this.name = name;this.age = age;};Person (this.name,this.age);//構造方法簡寫Person.ddd (){}; //帶名稱的構造方法 } //調用 var person = new Person();//new Person('Tom'.20)--有構造時 person.name = 'Tom'; person.age = 20; person.work(); //name is Tom , age is 20
使用_表示私有性. 默認一個Dart文件就是一個庫 .. Dart中可見性以Library(庫)為單位 java的可見性設置十分多
class的計算屬性
- class Rect{num width,height;num get area => width * height;// area{ return w*h }set area(val) {//給計算屬性area賦值時,處理數據,給其他屬性賦值width = val / 20;}; } var re = new Rect(); re.height = 20; re.width = 10; print(re.area); //200
構造方法-創建對象時調用的方法 可設置多個構造 .. 詳情看上上面的person
- 命名構造方法
- 常量構造方法----如果類是不可變狀態,可以吧對象對應為編譯期常量
- 使用const聲明構造方法,并且所有變量都為final,使用const聲明對象.可以省略
- 工廠構造方法
- 類似于設計模式中的工廠模式 - -構造方法前加factory
- 最大的不同 , 工廠構造可以返回對象. ---???
- 初始化列表 ---???
- static 聲明靜態成員 --???
- 對象操作符
- ?.安全訪問成員 person?.work() 對象存在時調用work不存在則不執行
- as 類型轉換
- is is! 是否是指定類型
- 級聯操作 person..name='xx'..age=20..work();
- 對象call方法
- 如果class實現了call(),則該class的對象可以作為方法使用
繼承
- extends --繼承父類可見的屬性和方法. 子類可以復寫父類方法/getter/setter
- 單繼承/多態性
- @override -- 指的是該方法是復寫的
- 子類構造方法會默認調用父類的無名無參的構造方法. 如果父類沒有,則需要顯示調用
- 構造方法執行順序: 子類初始化列表 - 父類構造 - 子類構造
抽象類
- 抽象類 abstract ,不能實例化.只能被繼承實例化
接口
- 類和接口是統一的
轉載于:https://www.cnblogs.com/Vayne-N/p/11519153.html
總結
以上是生活随笔為你收集整理的Dart语言--基础内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于js私钥加密公钥解密的问题
- 下一篇: Netlib文件转化为mps文件