Dart4Flutter-01– 變數, 型別和 函式

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

Hello World

dart 版的hello world

main(List<String> args) {
print('Hello World');
}

和Java語言類似,每個dart程式都有一個main,是整個程式的入口。

將程式儲存到hello_world.dart

但是,和JavaScript不同的是,在Dart2中,一旦你給變數賦值一種型別的值,就不能再賦值另一種型別的值。Dart 可以自動從右邊資料推斷資料型別。

你也可以明確指定資料型別定義變數。

main(List<String> args) {
int number = 42;
String name = 'Gurleen Sethi';
double salary = 150300.56;
bool isDoorOpen = true;
}

If you don’t intend to change the value held by a variable, then declare it with a final or a const.

如果你不想改變變數所持有的值,可以用關鍵字final

final 和 const的不同在於,const是編譯時常量。例如,const變數在編譯時必須要有一個值。例如,const PI = 3.14

Lists

宣告一個list非常的簡單,可以簡單使用方括號[]定義list。下面是list的常用操作。

main(List<String> args) {
var list = [1,2,3,4];
print(list); //Output: [1, 2, 3, 4]
//Length 長度
print(list.length);
//Selecting single value 獲取單個值
print(list[1]);    //Outout: 2
//Adding a value 新增值到list
list.add(10);
//Removing a single isntance of value 刪除單個值
list.remove(3);
//Remove at a particular position 刪除指定位置的值
list.removeAt(0);
}

如果你想定義一個編譯時常量list,例如,list的內容是不可改變的,可以使用關鍵字const

Maps

定義map也很簡單。可以使用花括號{}定義map。

main(List<String> args) {
var map = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
};
//Fetching the values 獲取值
print(map['key1']);    //Output: value1
print(map['test']);    //Output: null
//Add a new value 新增值
map['key4'] = 'value4';
//Length   獲取長度
print(map.length);
//Check if a key is present 檢查是否存在
map.containsKey('value1');
//Get entries and values
var entries = map.entries;
var values = map.values;
}

你也可以使用map建構函式定義map。

main(List<String> args) {
var squares = new Map();
squares[4] = 16;
}

如果你想定義編譯時常量的map,可以使用const

函式

dart中的函式和JavaScript中有點類似。你需要定義就是函式的名字、返回值、引數。

main(List<String> args) {
var name = fullName('John', 'Doe');
print(name);
}
String fullName(String firstName, String lastName) {
return "$firstName $lastName";
}

你也可以省略返回值型別,程式同樣可以執行。

main(List<String> args) {
var name = fullName('John', 'Doe');
print(name);
}
fullName(String firstName, String lastName) {
return "$firstName $lastName";
}

下面是定義一行函式的方法。

main(List<String> args) {
var name = fullName('John', 'Doe');
print(name);
}
fullName(String firstName, String lastName) => "$firstName $lastName";

命名引數

dart有個叫命名引數的東西。當你呼叫函式的時候,你必須指定引數的名字。要使用命名引數,可以將函式的引數包括在花括號{}內。

main(List<String> args) {
var name = fullName(firstName: 'John', lastName: 'Doe');
print(name);
}
fullName({String firstName, String lastName}) {
return "$firstName $lastName";
}

如果你在呼叫命名引數的函式時,沒有指定引數的名字,程式將崩潰。

引數預設值

你可以給函式的命名引數一個預設值。下面的例子給lastName一個預設值。

main(List<String> args) {
var name = fullName(firstName: 'John');
print(name);
}
fullName({String firstName, String lastName = "Lazy"}) {
return "$firstName $lastName";
}

函式是一等公民

在dart中函式比較靈活,例如,你可以將函式當引數傳遞給另一個函式。

main(List<String> args) {
out(printOutLoud);
}
out(void inner(String message)) {
inner('Message from inner function');
}
printOutLoud(String message) {
print(message.toUpperCase());
}

這裡定義一個函式名字為out

另一個匿名函式的例子。

main(List<String> args) {
var list = [1,2,3,4];
list.forEach((item) {
print(item);
});
}

本教程結束。

參考

http://thetechnocafe.com/just…

相關文章

Android 開發 最新文章