dart語言基礎

大標題

近日開始學習Flutter,天然也就免不了學習dart語言,做爲一名C#轉前端,時隔多年又用上了強類型語言,配合vscode使用,頗爲親切,彷彿又回到了快樂的winform開發時代。dart學習的話,本人是官網入門教程配合《Flutter 從0到1構建大前端應用》,dart官網的中文文檔已經很完善,本文站在前端的角度上會對dart和javascript兩種語言作一些對比,使前端同窗能夠更快的學習dart語言,話很少說,下邊直奔主題。javascript

概述

dart是一門單繼承強類型語言,全部類都是Object類的子類,dart程序必須有一個主入口函數main(),這和C#是一致的。前端

關鍵字

這裏沒啥可說的,直接截張圖,須要具體瞭解的請移至官方文檔, 傳送門 java

變量聲明

dart聲明變量有如下幾種方式:express

  • 經過具體類型定義:聲明類型在關鍵字前,變量類型聲明後不可更改
String str = '我是字符串';
print(str); // 我是字符串
str = 1; // Error: A value of type 'int' can't be assigned to a variable of type 'String'.
複製代碼
  • Object基類定義:能夠賦值任何類型,這種作法是不推薦的,開發過程當中咱們須要儘可能爲變量肯定一個類型
Object obj = '我是對象';
print(obj); // 我是對象
obj = 1;
print(obj); // 1
複製代碼
  • var定義:var定義若是不賦值的話,默認值爲null,js中默認爲undefined。Dart使用var定義時,變量若是聲明時被賦值,就會根據值的類型進行類型推斷,此變量再次賦值時也必須是第一次值的類型,不然會拋出類型錯誤,js則能夠任意類型賦值
var v;
print(v); // null
v = "v是字符串";
print(v); // v是字符串
v = 1;
print(v); // 1
var v1 = "類型推斷";
v1 = 1; // Error A value of type 'int' can't be assigned to a variable of type 'String'
複製代碼
  • dynamic類型定義:dynamic表示特殊類型,編譯器對其不會作任何類型檢查。相似於ts中的any,慎用
dynamic dy;
dy = 1;
print(dy);  // 1
dy = "string";
print(dy);  // string
複製代碼
  • const和final定義:使用過程當中不會被修改的變量.const的使用方式與js相似,稍有區別在於dart中的const只能賦值常量值,若是將其餘定義好的變量賦值給const常量會拋出類型錯誤,js中因沒有類型檢查,是能夠這樣作的。final變量值只能被設置一次,使用過程當中與const的區別在於,實例變量能夠是final類型,但不能是const類型,話有點多,看🌰
var vc = 1;
const co = vc + 1;  // Not a constant expression. js能夠這樣作,co會是2
const cL = List(); // Error: Cannot invoke a non-'const' factory where a const expression is expected
final fL = List();
print(fL); // [] 
複製代碼
  • 最後給一下官方文檔變量部分傳送門

參考

相關文章
相關標籤/搜索