🍇
【Flutter/Dart】メソッドの引数まとめ
はじめに
Dartのメソッドの引数(基本型、オプション引数、名前付き引数)についてまとめました。
環境
$ flutter --version
Flutter 3.13.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision efbf63d9c6 (5 weeks ago) • 2023-08-15 21:05:06 -0500
Engine • revision 1ac611c64e
Tools • Dart 3.1.0 • DevTools 2.25.0
基本的な引数
例として、受け取った引数をprint()で表示するprofile関数を定義します。
String型の引数nameの値を表示しています。
void profile(String name) {
print("name: ${name}");
}
void main() {
profile('山田');
}
実行結果
name: 山田
オプション引数
引数を[]
で囲むと、引数の指定が省略可能なオプション引数を使用できます。
必須の引数は必ずオプション引数の前に記述します。
void profile(String name, [int? age]) {
print("name: ${name}");
print("age: ${age}");
}
void main() {
profile('山田');
}
name: 山田
age: null
名前付き引数
引数を{}
で囲むと、名前付きの引数を使用できます。
メソッドを呼び出す際に引数の名前(サンプルコードだとname:
)がないとエラーが出ます。
名前付き引数が必須でない場合、型に?
演算子をつけてNull許容型で定義する必要があります。
必須の場合は型の前にrequired
を付加します。型はNull許容型でなくても大丈夫です。
名前付き引数が必須ではない場合
void profile({String? name, int? age}) {
print("name: ${name}");
print("age: ${age}");
}
void main() {
profile(name: '山田', age: 20); // OK
profile(name: '山田'); // OK
profile('山田', 20); // NG
}
名前付き引数が必須の場合
void profile({required String name, required int age}) {
print("name: ${name}");
print("age: ${age}");
}
void main() {
profile(name: '山田', age: 20); // OK
profile(name: '山田'); // NG
profile('山田', 20); // NG
}
Discussion