日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是Dart語言

Dart語言是谷歌公司在2011年推出的新的計算機語言。Dart可以應用于web、服務器、移動應用和物聯網等領域的開發。Dart的終極目標是取代JAVAScript。Dart設計完全脫離JavaScript,因此它沒有向后兼容JavaScript。Dart語言的發展始終一直都是不溫不火。

為什么要用Dart

Flutter是谷歌的移動UI框架,可以快速在IOS和Android上構建高質量的原生用戶界面。 Flutter可以與現有的代碼一起工作。在全世界,Flutter正在被越來越多的開發者和組織使用,并且Flutter是完全免費、開源的。Flutter選擇了Dart作為開發語言,因此想學習Flutter就必須先學習好Dart。

環境搭建

下載和安裝Dart

可以從下載到最新版本的Dart。

Dart語言快速入?

 

雙擊下載到的exe文件,依照向導指示完成Dart的安裝。

安裝驗證

1. window鍵+r打開運行窗口

1. 在運行窗口的打開輸入框輸入cmd,然后點擊確定

Dart語言快速入?

 

1. 在命令行界面輸入命令并按回車

dart --version
Dart語言快速入?

 

安裝Visual Studio Code

很多常見的IDE都有Dart的插件可以使用,這里推薦使用加插件進行Dart開發。可以在下載到Visual Studio Code,安裝完成后可以開始添加插件。

安裝Dart插件

Dart語言快速入?

 

安裝Code Runner插件

Dart語言快速入?

 

helloworld

1. 在VSC新建文件

1. 輸入以下代碼

void main(){ print('hello world');}

1. 在文件上按鼠標右鍵,選擇點擊Run Code運行

Dart語言快速入?

 

1. 運行結果

Dart語言快速入?

 

變量聲明

var

使用方式與JavaScript的var一致,可以接收任意類型的值。不同的地方是,Dart是強類型語言,賦值以后類型就確定下來,不能再更改為其它類型。

var name;name = 'zhangsan';// 下面的代碼在dart中會報錯,原因是變量name類型已經確定為String// 類型一旦確定就不能再更改.name = 100;

final和const

final和const類似都可以定義一個常量。它們的區別是const在聲明必須賦值,而final可以先預聲明需要使用時再賦值。

// const和final在聲明字面量時作用是一致的
const PI = 3.14159;
final PI2 = 3.14159;// 以下代碼會報錯,原因是常量賦值后就不能再做修改
// PI = 3.1415926535;final now = new DateTime().now();
// 以下代碼在dart中會報錯,const在編譯時就必要賦值,而new DateTime().now()
// 在運行才能產生具體的
// const now2 = new DateTime().now();

數據類型

Dart內置節以下幾種數據類型

· String

· Number

· Boolean

· List(Dart沒有數組,類似于數組的作用)

· Map

· Runes(UTF-32字符集的字符)

· Symbols

通過一段代碼來演示以上的數據類型

void main(){ 
// Number
 int a = 1; 
double b = 0.1; 
// String
 var s1 = 'this is a string'; 
String s2 = "this is another string"; 
// boolean
 var flag = true; 
bool flag2 = false; 
// List 
List list = [1, 2, 3, 4, 5];
 List<String> list2 = ['zhang', 'san', "123", "456"];
 List<dynamic> list3 = [1, true, 'haha', 1.0]; 
// Map
 Map person = new Map(); 
map['name'] = 'zhangsan'; 
map['age'] = 22; 
// Dart使用runes來獲取UTF-32字符集的字符。String的codeUnitAt and codeUnit屬性可以獲取UTF-16字符集的字符
 var clApping = '\u{1f44f}'; print(clapping); 
// 打印的是拍手emoji的表情 
// symbols print(#s == new Symbol("s")); // true}

函數

函數的返回值

Dart是面向對象的編程語言,所以函數也是一個對象,還有一種類型Function,也就是說函數可以賦值給某個變量或者作為參數傳給另外的函數。Dart建議給函數添加上返回類型,但是不加返回類型的函數同樣可以正常工作,另外還可以用lamda表達式,比如下面的代碼:

// 聲明返回類型
int add(int a, int b) { return a + b;
}
// 不聲明返回類型add2(int a, int b) { return a + b;}
// =>是return語句的簡寫add3(a, b) => a + b;main() {
print(add(1, 2));//3 
print(add2(2, 3)); // 5 
print(add3(1, 2)); // 3}

命名參數、位置參數、參數默認值

命名參數

使用花括號將函數的參數括起來就是定義了命名參數,如下面的代碼所示:

```dart sayHi({String name}) { print("hello, my name is $name");}

sayHi2({name: String}) { print("hello, my name is $name");}

main() { // 打印 hello, my name is zhangsan sayHi(name: 'zhangsan');

// 打印 hello, my name is wangwu 
sayHi2(name: 'wangwu');
}```

從上面代碼可以看到,命名參數時可以使用{type paramName}或者{paramName: type}兩種方式聲明參數,而調用命名參數時,需要以funcName(paramName: paramValue)的形式調用。

命名參數的參數并不是必須的,所以上面的代碼中,如果調用sayHi()不帶任何參數,也是可以的,只不過最后打印出來的結果是:hello, my name is null。

位置參數

使用中括號[]括起來的參數是函數的位置參數,代表該參數可傳可不傳,位置參數只能放在函數的參數列表的最后面,如下代碼所示:

```dart sayHello(String name, int age, [String hobby]) { // 位置參數可以有多個,比如[String a, int b] var msg = "hello, this is $name and I am $age years old"; if (hobby != null) { msg = "$msg, my hobby is $hobby"); } print(msg);}
main() { // hello, this is zhangsan and I am 20 years old sayHello("zhangsan", 20); // hello, this is zhangsan and I am 20 years old, my hobby is play tv game sayHello("zhangsan", 20, "play tv game");}```

參數默認值

可以為命名參數或者位置參數設置默認值,如下代碼所示:

```// 命名參數的默認值int add({int a, int b = 3}) { return a + b;}// 位置參數的默認值int sum(int a, int b, [int c = 3]) { return a + b + c;}```

main()函數

不論在Dart還是Flutter中,必須都需要一個頂層的main()函數,它是整個應用的入口函數,main()函數的返回值是void,還有一個可選的參數,參數類型是List。

匿名函數

大多數函數都是有名稱的,比如main() hello()等,但是也可以寫匿名函數,如果對JavaScript比較熟悉,看到下面的肯定也不會陌生:

test(Function callback) {
 callback("hello");}
main() { test((param) {
 // 打印hello print(param);
 });}

匿名函數類似于Java中的接口,往往在某個函數的參數為函數時使用到。

函數返回值

所有的函數都有返回值,如果沒有指定return語句,那么該函數的返回值為null。

運算符

Dart中的運算符與JavaScript中的類似,比如++a、a == b、b ? a : b,但是也有一些與JavaScript不太一樣的運算符,下面用代碼說明:

main() { 
// 與JavaScript相同的運算符操作 
int a = 1; 
++a; 
a++; 
var b = 1; 
print(a == b); // false 
print(a * b); // 3
 bool real = false; 
real ? print('real') : print('not real'); // not real
 print(real && a == b); // false 
print(real || a == 3); // true 
print(a != 2); // true 
print(a <= b); // false 
var c = 9; c += 10; print("c = $c"); // c = 19 
print(1<<2); // 4 
// 與JavaScript不一樣的運算符操作
 // is運算符用于判斷一個變量是不是某個類型的數據 
// is!則是判斷變量不是某個類型的數據
 var s = "hello"; 
print(s is String); // true
 var num = 6; print(num is! String); // true
 // ~/才是取整運算符,如果使用/則是除法運算,不取整
 int k = 1; 
int j = 2; 
print(k / j); // 0.5 
print(k ~/ j); // 0 
// ??=運算符 如果 ??= 運算符前面的變量為null,則賦值,否則不賦值 
var param1 = "hello", param2 = null; 
param1 ??= "world"; 
param2 ??= "world"; 
print("param1 = $param1"); // param1 = hello
 print("param2 = $param2"); // param2 = world 
// ?.運算符 
var str1 = "hello world";
 var str2 = null; 
print(str1?.length); // 11 
print(str2?.length); // null
 print(str2.length); // 報錯}

控制流程

if...else, switch, for, while, try...catch語句跟JavaScript中都類似,try...catch語句可能稍有不同,下面用一段代碼說明:

main() { 
// if...else語句 
int score = 80; 
if (score < 60) { print("so bad!");
 } else if (score >= 60 && score < 80) {
 print("just pass!"); } 
else if (score >= 80) { print("well done!");
 } 
// switch語句
 String a = "hello"; 
// case語句中的數據類型必須是跟switch中的類型一致
 switch (a) {
 case "hello":
 print("good weather"); 
break; 
case "world":
 print("good morning"); 
break; 
default: 
print("good bye"); } 
// for語句
 List<String> list = ["a", "b", "c"]; 
for (int i = 0; i < list.length; i++) { 
print(list[i]); }
 for (var i in list) { print(i); } 
// 箭頭函數參數必須要用圓括號擴起來 list.forEach((item) => print(item)); 
// while語句 
int start = 1; 
int sum = 0; 
while (start <= 100) { 
sum += start;
 start++; } 
print(sum); 
// try...catch語句
 try { print(1 ~/ 0); 
} catch (e) { 
// IntegerDivisionByZeroException
 print(e); 
} 
try {
 1 ~/ 0; 
} on IntegerDivisionByZeroException { // 捕獲指定類型的異常
 print("error"); // 打印出error
 } finally { 
print("finally"); // 打印出finally
 }
}

總結

在這里我們學習了怎樣配置Dart的開發環境,對變量聲明、數據類型、函數、運算符、控制流程語法進行說明,為更深入學習Dart或者Flutter打下基礎。

分享到:
標簽:語言 Dart
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定