今天我們稍微來認識一下Dart,大致上會包括
好的,那我們就開始吧~
數字類 : int
整數, double
浮點數
nt count = 1;
ouble dollar = 3.0;
``
字串類 : String
字串
tring sayHello = "Hello!";
``
布林: bool
布林值
ool isGood = true;
``
List
(array): 有序且內部元素可以重複的列表。List代表這是一個含有type型別的列表
ist<int> list = [1,2,2,3]
``
Set
: Set 集合,無排序且不能重複
et<int> set = {1,2,3}
``
Map
: key-value pairs,相當於javascript的key-value pair object, python的dictionary, java的hashMap
ar priceMap = {
'apple': 25,
'orange': 20,
'banana': 15
``
Object
:物件,是所有類別的父類別
enum
:列舉型別(enumerative values)
num Fruit {
apple,
banana,
``
Iterable
: 可迭代的類別,如可迭代的List是Iterable的子類
Future
: 用於非同步行為,類似Promise
uture<void> findData() {
// return 'Data Found!' after 5 second
return Future.delayed(Duration(seconds: 5), () => print('Data Found!'));
``
Never
: 若預期一個表達式不會繼續執行下去(如拋出錯誤),回傳Never,詳情可見關於Never的探討
ever isRequired(String property) {
throw ArgumentError('$property is required.');
``
dynamic
:可以是任何型別
ynamic temp = 0;
emp = 'Test';
emp = false;
``
void
:無任何值
依照條件判斷的語法
if
, else if
, else
f(weather == 'rainy'){
useUnbrella();
else if(weather == 'sunny'){
useSunGlasses();
else {
justBeCool();
``
switch
witch(weather){
case 'rainy':
useUnbrella;
break;
case 'sunny':
useSunGlasses();
break;
default:
justBeCool();
break;
``
迭代集合中每個元素的語法
while
hile(!restTime){
keepWorking();
``
do ... while
o {
working();
hile(!restTime);
``
for
, for in
or(var i = 0; i< 10; i++){
print(i);
or(file in files){
saveToLocal(file);
``
break
: 跳出當前的條件/迴圈continue
: 結束此輪迴圈,直接開始下一輪迴圈return
: 結束此function並回傳值flutter的基礎function 寫法如下:
nt addTwoNumbers(int a, int b) {
return a+b;
ddTwoNumbers(1,2); // 3
``
unction前面代表預期會回傳的值(int),addTwoNumber是function的名稱,`int a` `int b`是輸入的參數
也可以自行設定optional的參數
nt addNumbers(int number1, [int? number2, int? number3, int? number4]) {
int sum = number1;
if (number2!= null) {
sum = number1+number2;
}
if (number2!= null && number3!= null) {
sum = number1+number2+number3;
}
if (number2!= null && number3!= null && number4!= null) {
sum = number1+number2+number3+number4;
}
return sum;
ddNumbers(1); // 1
ddNumbers(1,2); // 3
ddNumbers(1,2,3); // 6
ddNumbers(1,2,3,4); // 10
``
另外,dart function中定義的parameter也可以指定parameter名稱,變成named parameter。而named parameter一般來說都是optional,除非加入required
關鍵字才會讓這個parameter變成function所必須
nt addTwoNumbers({required int firstNumber, required int secondNumber}){
return a+b;
ddTwoNumbers(firstNumber=1, secondNumber=2); // 3
``
Dart常用的型別
int
/double
:數字類別String
:字串類別bool
:布林值List
:有序且可重複的集合Set
:無序且不可重複的集合Map
:key-value pairs和條件語句
if
/ else if
/ else
, switch
while
, do...while
, for
, for ...in ...
以及function的寫法
[回傳類別] [function名稱] (參數型別 參數){
作用域
}
String sayHiTo(String name){
return 'Hi ${name}!';
}
明天一起來看看Dart的Class和一些preserved words代表的意思吧!