Dart 語言

Hello World

void main() {
  print("Hello World!");
}

Output :

Hello World!

註解

/*
我是很長的備註
*/

void main() {
  // 一行備註
  print("Hello World!");
}

保留字

abstract

default

final

null

throw

as

deferred

finally

operator

true

assert

do

for

part

try

async

dynamic

get

rethrow

typedef

await

else

if

return

var

break

enum

implements

set

void

case

export

import

static

while

catch

external

in

super

with

class

extends

is

switch

yield

const

factory

library

sync

continue

false

new

this

變數宣告

變數型別

說明

舉例

bool

Boolean 布林數

true, false

int

整數

1、2、3、4

double

2倍精確度浮點數

1.2、0.0

String

字串

"123"

var

未定型別變數

dynamic

泛型

範例

bool hasValue = true;
int i=0;
double pi = 3.14;
String myName = "AKI";
var a;
dynamic dynamicTest = "1";
List<double> scores = [0.1,0.2,0.3];
Map<String,String> map = {"name":"aki","gender":"male"};

void main() {
  print("Hello World!");
  print(hasValue);
  print(i);
  print(pi);
  print(myName);
  print(a); //未賦值,所以是 null
  print(dynamicTest);
  dynamicTest = 2; //型別改變了
  print(dynamicTest);
  print(scores);
  print(map);
}
Hello World!
true
0
3.14
AKI
null
1
2
[0.1, 0.2, 0.3]
{name: aki, gender: male}

變數前綴

前綴

說明

舉例

final

不允許再次更改數值

final int i = 0;

const

常數

const double PI = 3.14;

lazy

延遲賦值

lazy var VarABC;

集合宣告

變數名

說明

舉例

List

陣列

List<int> 整數陣列 , List<String> 字串陣列

Map

key-value pairs

Map<String,int> ...

map reduce where filter

null? empty?

Null-Safty

在宣告變數時先講清楚,到底 可不可以為 null。如果可以有null,編譯器就會提早檢查你是否有針對 null 做處理

String name1 = "1";  //不允許為 null, 所以要先賦值 
String? name2;      //可以為 null, 不賦值的話 即為空值

main(){
  
  print(name1);
  print(name2);
  name1 = null; //exception 這裡會出錯
  name2 = "123";
  print(name2);
}

運算子

賦值

main{
  int a = 1;
  a += 1;
  print(a);
}

串接

String abc = "a"+"b"+"c";

屬性

Navigator.of(context).isBlank

流程控制

迴圈

for

while

do-while

跳脫

break / continue

判斷式

  • if / elseif / else

if(name=="AKI"){
  print("Hi AKI");
}else if(name=="AKI's Friends"){
  print("Hi buddy");
}else {
  print("Who are you?");
}
  • switch case

 switch (leaveCode) {
    case "H1001":
      return tr("SH_AnnualLeave");
    case "H1002":
      return tr("SH_DeferredLeave");
    default:
      return "";
  }

函數 / 匿名函數

return value / function parameter / optional parameter / Positional parameter

implements

Exeption

練習區

DartPad : https://dartpad.dev/?null_safety=true

Last updated