日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Dart语言--基础内容

發(fā)布時間:2025/7/14 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dart语言--基础内容 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基礎

  • 主函數(shù)

    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

數(shù)據(jù)類型

  • 數(shù)據(jù)類型

    • Number
      • Int --整數(shù)型
      • double -- 浮點型
    • String
    • Boolean
    • List -- 數(shù)組
    • Map -- 鍵值對
  • 特殊運算符 ~/ 向下取整

  • 字符串操作
    • ''' 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鍵值對

    • 創(chuàng)建 var qq = {'first' : 'Dart' , 'second' : 'java'};
    • 創(chuàng)建不可變Map var q = const { ,,,, }
    • 構造創(chuàng)建 var q = new Map()
    • 獲取value qq['frist']
    • 循環(huán)傳遞兩個值 qq.forEach ( f ); void f( key , value ){.......}
  • dynamic 類型 -- 動態(tài)類型
    • var a = 10; a = "xxx";
    • dynamic a = 20; a="xxx";
    • 泛型應用: var lis = new List\<dynamic\>(); 這樣聲明的lis 可以使用各種類型的數(shù)據(jù)

運算符

  • ??= b ??= 10; b是空的則是10,有值則不做改變.
  • a~/=b 類似于 a+=b
  • var c = a ?? b a為空時表達式為b的值

函數(shù)

  • void main () {} void位置是返回類型 void指的是不需要返回類型
  • Dart定義函數(shù) xxx(){} js中定義函數(shù) function xx () {}
  • void fun(String name , int age) {xxxx}
  • 可選參數(shù)寫法
    • fun(String name , {int age, String kk}) fun('張三',age:20) 位置不固定
    • fun(String name , [int age , String kk]) fun('張三' , 20 ) 位置固定
  • 參數(shù)默認值
    • fun(String name , {int age = 30, String kk})
  • 匿名方法
    • () {} 可賦值給 變量 或者直接調用 .. 不能直接定義在最外層
    • ((){})() 自調.自執(zhí)行

面向對象

class-類
  • class 聲明類 new創(chuàng)建對象.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賦值時,處理數(shù)據(jù),給其他屬性賦值width = val / 20;}; } var re = new Rect(); re.height = 20; re.width = 10; print(re.area); //200
  • 構造方法-創(chuàng)建對象時調用的方法 可設置多個構造 .. 詳情看上上面的person

    • 命名構造方法
    • 常量構造方法----如果類是不可變狀態(tài),可以吧對象對應為編譯期常量
      • 使用const聲明構造方法,并且所有變量都為final,使用const聲明對象.可以省略
    • 工廠構造方法
      • 類似于設計模式中的工廠模式 - -構造方法前加factory
      • 最大的不同 , 工廠構造可以返回對象. ---???
    • 初始化列表 ---???
  • static 聲明靜態(tài)成員 --???
  • 對象操作符
    • ?.安全訪問成員 person?.work() 對象存在時調用work不存在則不執(zhí)行
    • as 類型轉換
    • is is! 是否是指定類型
    • 級聯(lián)操作 person..name='xx'..age=20..work();
  • 對象call方法
    • 如果class實現(xiàn)了call(),則該class的對象可以作為方法使用
繼承
  • extends --繼承父類可見的屬性和方法. 子類可以復寫父類方法/getter/setter
  • 單繼承/多態(tài)性
  • @override -- 指的是該方法是復寫的
  • 子類構造方法會默認調用父類的無名無參的構造方法. 如果父類沒有,則需要顯示調用
  • 構造方法執(zhí)行順序: 子類初始化列表 - 父類構造 - 子類構造
抽象類
  • 抽象類 abstract ,不能實例化.只能被繼承實例化
接口
  • 類和接口是統(tǒng)一的

轉載于:https://www.cnblogs.com/Vayne-N/p/11519153.html

總結

以上是生活随笔為你收集整理的Dart语言--基础内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。