Dart簡易教程 (1)---數據類型 運算符,類轉換換


從下面開始學習DART編程 

以下是一個簡單的示例:

main(){
var number = 42;
print(number);
}
程序說明,dart是一個強大的腳本類語言,可以不預先定義變量類型 ,自動會類型推倒,主程序必須要先有一個main()主函數方法
以上是基本示例 至於函數返回值 和參數,暫時不講,

在學習Dart語言時,請記住以下事實和概念:

  • 在變量中可以放置的所有東西都是對象,而每個對象都是的實例。無論數字、函數和null都是對象。所有對象都繼承自[Object]類。
  • 盡管Dart是強類型的,但類型聲明是可選的,因為Dart可以推斷類型。 在上面的代碼中,數字被推斷為int類型。 如果要明確說明不需要任何類型,請使用[特殊類型dynamic]。
  • Dart支持通用類型,如List<int>(整數列表)或List<dynamic>(任何類型的對象列表)。
  • Dart支持頂級函數(如main()),以及綁定到類或對象(分別是靜態方法(static)和實例(instance)方法)的函數。您還可以在函數(嵌套或局部函數)中創建函數。
  • 類似地,Dart支持頂級變量,以及綁定到類或對象(靜態和實例變量)的變量。實例變量有時被稱為字段或屬性。
  • 與Java不同,Dart沒有公開、保護和私有的關鍵字。如果標識符以下划線(_)開頭,則該標識符對其庫是私有的。有關詳細信息,請參見[庫和可見性]。
  • 標識符可以以字母或下划線(_)開頭,然后是這些字符加上數字的任何組合。
  • 有時候,某事物是一個表達(expression )還是一個語句(statement)是很重要的,所以這兩個詞要准確。
  • Dart工具可以報告兩種問題:警告和錯誤。警告只是表明您的代碼可能不工作,但它們不會阻止您的程序執行。錯誤可以是編譯時錯誤,也可以是運行時錯誤。編譯時錯誤阻止了代碼的執行;運行時錯誤導致代碼執行時引發異常。

 

       dart 關健字比健多,

下標中列出了Dart中的所有關鍵詞

       
abstract (1) do import (1) super
as (1) dynamic (1) in switch
assert else interface (1) sync* (2)
async (2) enum is this
async* (2) export (1) library (1) throw
await (2) external (1) mixin (1) true
break extends new try
case factory (1) null typedef (1)
catch false operator (1) var
class final part (1) void
const finally rethrow while
continue for return with
covariant (1) get (1) set (1) yield (2)
default if static (1) yield*
deferred (1) implements (1)    

(1)帶有上標1的單詞是內置標識符。避免使用內置標識符作為標識符。如果嘗試為類或類型名使用內置標識符,則會發生編譯時錯誤。
(2)使用上標2的單詞是在Dart的1.0版本之后添加的與異步支持相關的更新的、有限的保留字。在以async, async*, 或者 sync* 標記的任何函數體中,不能使用async, await, 或者 yield作為標識符。有關更多信息,請參見異步支持。

關鍵字表中的所有其他詞都是保留詞。不能使用保留詞作為標識符。

變量與默認值

 

 定義變量可以  var  n =5;   也可以簡成        int  n = 5; 暫不支持golang或者python  那種高級多定義方法

須要說明的是    var 后就不要寫類型 ,  寫了類型 不要var   兩者都寫   var  a int  = 5;  報錯

定義字符串:

var s1 = 'Single quotes work well for string literals.'; var s2 = "Double quotes work just as well."; var s3 = 'It\'s easy to escape the string delimiter.'; var s4 = "It's even easier to use the other delimiter.";

同樣支持 \n \t \r 這些寫法

 

 

 

 

 

 

以下關於數字定義

數字類型 numbers  有二種形式  一種是int   長度給操作系統有關,,32 位64位,最高長度不一樣。。

一種是double   精度給ieee標准有關。。

int x = 1;
16進制寫法 int hex = 0xDEADBEEF; int bigInt = 34653465834652437659238476592374958739845729

關於字符定義

關於布爾
數據類型詳細說明:
未初始化的變量的初始值為null。甚至具有數字類型的變量最初也是null,因為數字——就像dart中的其他東西一樣——是對象。
程序默認值:如果變量只申明沒有定義只會有默認值 ,轉換類型失敗也會返回默認值 ,稍后補充

int lineCount; assert(lineCount == null); // assert類似於if 語句,出錯后會標飄紅報錯


Final 和 const修飾符  、、// 定義常量

 const值不變 一開始就得賦值
final 可以開始不賦值 只能賦一次 ; 這是兩者的差別。
永遠不改量的量,請使用final或const修飾他,而不是使用var或其他變量類型。最終變量只能設置一次;const變量是一個編譯時常數。(Const變量是隱式最終變量。)最終的頂級或類變量在第一次使用時被初始化。注意:實例變量可以是final,但不能是const。[ 實例變量定義在對象一級,它可以被類中的任何方法或者其他類中的方法訪問,但是不能被靜態方法訪問。]

這里有一個創建和設置final變量的例子:

final name = 'Bob'; // Without a type annotation final String nickname = 'Bobby'; 

您無法更改final變量的值:

name = 'Alice'; // Error: a final variable can only be set once. //這個是錯誤示例,在使用時final變量是不可以更改的 

對於想要在編譯時確定並且不再變的變量,使用const。如果const變量位於類級別,則將其標記為靜態const。在聲明該變量時,將該值設置為編譯時常量,例如數字或字符串字面量、const變量或常量數字算術運算的結果:

const bar = 1000000; // Unit of pressure (dynes/cm2) const double atm = 1.01325 * bar; // Standard atmosphere 

const關鍵字不只是聲明常量變量。您還可以使用它來創建常量值,以及聲明創建常量值的構造函數。任何變量都可以賦一個常量值。

var foo = const []; final bar = const []; const baz = []; // Equivalent to `const []`

您可以更改一個非final的非const變量的值,即使它曾經有一個const值:  這兒foo  是var 定義的,,所以值能改變,,

foo = [1, 2, 3]; // Was const [] 這兒返回正確值 

你不能改變const變量的值:  baz是  const定義的  不能改變

baz = [42]; // Error: Constant variables can't be assigned a value.


 區別一:final 要求變量只能初始化一次,並不要求賦的值一定是編譯時常量,可以是常量也可以不是。而 const 要求在聲明時初始化,並且賦值必需為編譯時常量

區別二:final 是惰性初始化,即在運行時第一次使用前才初始化。而 const 是在編譯時就確定值了。

編譯時常量指的是:字面量(如數字、bool、字符串、List的字面量形式)、其它常量 或者 常量的算術運算,也可以是這些的組合形式(遞歸要求),簡單地說常量就是可以在編譯時確定的值。

 

 



 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM