日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dart编程语言入门

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dart编程语言入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Dart基礎入門語法介紹,詳細說明可以查看相關視頻《Dart編程語言入門》。

變量與常量

變量

1.使用?var?聲明變量,默認值為?null

var a;//null a = 10;

2.顯示類型聲明

int a;//null a = 10;

3.使用?var?聲明,可賦予不同類型的值

var a; //null a = 10; //int a = "Dart"; //string

4.使用?final?聲明只能賦值一次的變量

final a = 30; a = 10; //Error

常量

使用?const?聲明編譯期常量

const a = 10;

數據類型

數值型

Dart中使用?num?表示數值型,子類只有兩種:int?和?double,分別表示整型和浮點型。
1.使用?num?聲明的類型既可以接收整型,也可以接收浮點型;

num a = 10; //int a = 12.5; //double

2.使用?int?聲明整型;

int a = 10;

3.使用?double?聲明浮點型

double a = 10.5;

4.常用屬性和方法(更多可查看相關api)

int a = 30; a.isEven;//是否偶數 a.isOdd; //是否奇數 a.abs();// 絕對值 a.toDouble();//轉換為浮點型 ...int b = 10.5; b.toInt();//轉換為整型 b.round(); //四舍五入,11 b.floor(); //不大于b的最大整數,10 b.ceil(); //不小于b的最小整數,11 ...

字符串

Dart中使用?String?表示字符串。
1.使用?單引號?或?雙引號?創建字符串;

String str = "Dart";String str = 'Dart';

2.使用?三個單引號?或?三個雙引號?創建多行字符串;

String str = '''HelloDart''';String str = """HelloDart""";

3.使用?r?創建原始字符串

String str = r'Hello \n Dart'; // "\n"不會被轉義

4.插值表達式
使用?${ }?表示插件表達式,單個變量可省略?{ }。

int a = 1; int b = 2; print("a + b = ${a + b}");

5.常用屬性和方法(更多可查看相關api)

str.length;//字符串長度 str.isEmpty;//是否為空 ...str.contains('xxx');//是否包含xxx str.substring(0,3);//截取前三個字符 str.startsWith('xxx‘);//是否以xxx開頭 str.split(",");//以,分隔字符串,返回數組 ...

布爾型

Dart中使用?bool?表示布爾型。布爾型的值只有?true?和?false。

bool isTrue = true; bool isFalse = false;

List body ol,body ul{margin:0;padding:0;}body .list-paddingleft-1{padding-left:0} body .list-paddingleft-2{padding-left:20px} body .list-paddingleft-3{padding-left:40px}

Dart中使用?List?表示列表,它和數組是同一概念。

1.創建List,使用?const?創建不可變的List

var list = [1, 2, 3];//創建不可變的List var list = const[1, 2, 3];//使用類創建 var list = new List();

2.常用屬性和方法(更多可查看相關api)

  • 獲取元素個數
list.length;
  • 判斷是否為空
list.isEmpty;list.isNotEmpty;
  • 添加元素
list.add('xxx');list.insert(index,'xxx'); //在下標位置添加元素
  • 刪除元素
list.remove('xxx');list.clear(); //清空list
  • 修改元素
list[0] = 'xxx'; //修改下標為0的元素值為xxx
  • 查詢元素
list[0];//獲取第一個元素,下標從0開始
  • 其它
list.indexOf('xxx');//查詢元素xxx,返回下標,不存在返回-1list.sort(); //排序list.subList(start,end);//獲取從子列表list.forEach(); //遍歷list ...

Map

Dart中使用?Map?表示key-value鍵值對。

1.創建Map,使用?const?創建不可變的Map

var map = {'first':'Java','second':'Dart'};//創建不可變的Map var map = {'first':'Java','second':'Dart'};//使用類創建 var map = new Map();

2.常用屬性和方法(更多可查看相關api)

  • 獲取元素個數
map.length;
  • 判斷是否為空
map.isEmpty;map.isNotEmpty;
  • 添加元素
map['third'] = 'JavaScript'; //添加key為thrid,value為JavaScript的元素
  • 刪除元素
map.remove('third'); //刪除key為third的元素map.clear(); //清空map
  • 修改元素
map['first'] = 'C++'; //修改key為first的value為C++
  • 查詢元素
map['first'];//獲取key為first的value
  • 其它
map.keys; //獲取map所有的keymap.values; //獲取map所有的valuemap.containsKey('first'); //map是否包含key為first的元素map.containsValue('Java'); //map是否包含value為Java的元素map.forEach(); //遍歷map ...


map相加 .List相加.===========================================>
Map a = {'a':1, 'b':2};
Map b = {'c':3, 'd':4};
// print(a+b);
List c = [1,2,3];
var d = [4,5];
// print(c+d);
a.addAll(b);
print(a);



運算符

Dart中的很多運算符和其它語言是相似的,個別不同用法會詳細說明。

算術運算符

  • 加減乘除:?+ , - , * , / , ~/ , %

“/” 運算符結果為浮點型;
"~/" 運算符為求整,類似Java中的"/";
"%"運算符為求余;

  • 遞增遞減:?++var , var++ , --var , var–

關系運算符

關系運算符包括:== , != , > , < , >= , <=

"=="運算符只是判斷內容是否相同。

邏輯運算符

邏輯運算符包括:! , && , ||

賦值運算符

  • 基礎運算符:?= , ??=

“??=” 表示左側變量為空時進行賦值,否則不賦值

int a; a ??= 5; // a = 5int a = 10; a ??= 5; //a = 10
  • 復合運算符: *+= , -= ,?= , /= , %= , ~/=

條件運算符

  • 三目運算符:?condition ? expr1 : expr2
  • ??運算符:?expr1 ?? expr2

"??"運算符表示如果expr1為null,則使用expr2的結果,否則使用expr1

String a = "Dart"; String b = "Java"; String c = a ?? b; //c = "Dart"String a; String b = "Java"; String c = a ?? b; //c = "Java"

控制流

if語句

if語句和其它語言類似。

if(condition1){//...if(condition2){//...} } else if(condition3){//... } else {//... }

for語句

var list = [1,2,3,4,5];for(var index = 0;index < list.length;index++){print(list[index]); }

for…in語句

for(var item in list){print(item); }

while語句

int count = 0;while(count < 5){print(count++); }

do…while語句

do{print(count--); }while(count > 0 && count < 5);

break和continue

break:終止當前循環;
continue:跳出當前循環,繼續下一次循環;

switch語句

switch語句支持num、String、編譯期常量、對象和枚舉。

switch(language){case "Dart":print("Dart is my favorite");break;case "Java":print("Java is my favorite");break;case "Python":print("Python is my favorite");break;default:print("None"); }

支持使用continue跳轉標簽:

switch(language){Test:case "Dart":print("Dart is my favorite");break;case "Java":print("Java is my favorite");continue Test;case "Python":print("Python is my favorite");break;default:print("None"); }

assert語句

assert條件表達式為false時會拋出異常。

assert(str != null);

方法

方法聲明

返回類型 方法名(參數1,參數2,....){ 方法體… return 返回值 }
  • 方法也是對象,并且有具體類型Function;
  • 返回值類型、參數類型都可省略;
void printPerson(String name,int age){print("name=$name,age=$age"); }printPerson(name,age){print("name=$name,age=$age"); }
  • 方法都有返回值。如果沒有指定返回類型,默認return null最后一句執行;
printPerson(String name,int age){print("name=$name,age=$age");//return null; }
  • => 語法,適用于方法體只有一個表達式的情況;
printPerson(String name,int age) => print("name=$name,age=$age");

可選參數

  • 可選命名參數,調用時使用名稱傳值。
printPerson(String name,{int age,String gender}){print("name=$name,age=$age,gender=$gender"); }//方法調用 printPerson("李四",age: 20); printPerson("李四",age: 20,gender: "Male");
  • 可選位置參數,調用時根據參數位置傳遞對應類型。
printPerson2(String name,[int age,String gender]){print("name=$name,age=$age,gender=$gender"); }//方法調用 printPerson2("張三",18); printPerson2("張三",18,"Female");
  • 如果存在具體參數,可選參數聲明,必須在參數后面

默認參數值

在可選參數中可以使用默認參數值,默認參數值必須是編譯期常量。

printPerson(String name,{int age = 30,String gender = "Female"}){print("name=$name,age=$age,gender=$gender"); }

方法對象

Dart中一切都對象,包括方法。所以方法也可以作為對象賦值給其它變量,也可以作為參數傳遞給其它方法。

  • 方法賦值給其它變量
void printHello(){print("Hello"); }Function func = printHello; func();
  • 方法作為參數傳遞
//第二參數是一個方法 List listTimes(List list ,String t(str)){for(var index = 0;index < list.length;index++){list[index] = t(list[index]);}return list; }String times(str){return str*3; }//方法作為參數調用 var list2 = ["h","e","l","l","o"]; print(listTimes(list2, times));

匿名方法

匿名方法沒有具體的名稱,和方法有相同的特性,也是對象,也可作為變量賦值和參數傳遞。

  • 匿名方法聲明
(參數1,參數2,….){ 方法體… return 返回值 }
  • 匿名方法賦值
var func = (str){print("Hello---$str"); };func(30);
  • 匿名方法作為參數
List listTimes(List list ,String times(str)){for(var index = 0;index < list.length;index++){list[index] = times(list[index]);}return list; }//使用匿名方法傳遞參數 var result = listTimes(list2, (str){ return str * 3;});

閉包

  • 閉包是一個方法(對象);
  • 閉包定義在其它方法內部;
  • 閉包能夠訪問外部方法內的局部變量,并持有其狀態
//該方法返回一個閉包 a(){int count = 0;return (){print(count++);}; }//閉包的調用可以訪問局部變量count var func = a(); func(); func(); func(); func();

?

轉載于:https://www.cnblogs.com/pythonClub/p/10557276.html

總結

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

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