Dart語言學習筆記(2)
阿新 • • 發佈:2020-09-14
函式
// 函式
bool isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
// 返回型別可省略(不推薦)
isNoble(atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
// 函式只包含一個表示式時可使用縮略語法
// => expr 相當於 { return expr; }
必要引數和可選引數
必要引數在前,可選引數在後
可選引數可以是 具名引數或位置引數
// 具名實參 paramName: value enableFlags(bold: true, hidden: false); // 具名形參 {param1, param2, …} /// Sets the [bold] and [hidden] flags ... void enableFlags({bool bold, bool hidden}) {...} // 可選引數中也可標註必要引數 import package:meta/meta.dart const Scrollbar({Key key, @required Widget child}) // 位置引數 String say(String from, String msg, [String device]) { var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } return result; } // 呼叫位置引數 assert(say('Bob', 'Howdy') == 'Bob says Howdy'); assert(say('Bob', 'Howdy', 'smoke signal') == 'Bob says Howdy with a smoke signal'); // 預設引數 /// Sets the [bold] and [hidden] flags ... void enableFlags({bool bold = false, bool hidden = false}) {...} // bold will be true; hidden will be false. enableFlags(bold: true); // 使用預設引數 String say(String from, String msg, [String device = 'carrier pigeon', String mood]) { var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } if (mood != null) { result = '$result (in a $mood mood)'; } return result; } assert(say('Bob', 'Howdy') == 'Bob says Howdy with a carrier pigeon'); // 預設引數也可以是 List 或 Map void doStuff( {List<int> list = const [1, 2, 3], Map<String, String> gifts = const { 'first': 'paper', 'second': 'cotton', 'third': 'leather' }}) { print('list: $list'); print('gifts: $gifts'); }
main 函式
main 函式為程式的起點,返回 void,有一個可選的 List<String>
型別的引數
void main() { querySelector('#sample_text_id') ..text = 'Click me!' ..onClick.listen(reverseText); } // Run the app like this: dart args.dart 1 test void main(List<String> arguments) { print(arguments); assert(arguments.length == 2); assert(int.parse(arguments[0]) == 1); assert(arguments[1] == 'test'); }