Dartの勉強8:関数
一般的な引数を要求する関数です。引数を必須にしない場合は[]で括る必要があります。引数で渡されない場合、内部ではnullになっています。
void main() {
printNames1("Tokyo", "Sapporo", "London");
printNames2("JPY", "USD");
}
void printNames1(String name1, String name2, String name3) {
print("Name 1 is $name1.");
print("Name 2 is $name2.");
print("Name 3 is $name3.");
}
void printNames2(String name1, [String name2, String name3]) {
name2 = name2 ?? "No Name";
name3 = name3 ?? "No Name";
print("Name 1 is $name1.");
print("Name 2 is $name2.");
print("Name 3 is $name3.");
}
結果は、以下の通りです。
Name 1 is Tokyo.
Name 2 is Sapporo.
Name 3 is London.
Name 1 is JPY.
Name 2 is USD.
Name 3 is No Name.
計算結果を返す場合は、returnで返す値を指定します。また、関数名の前に返す値のタイプを書いても書かなくてもOKです。
また、計算が1行で済む場合は、アロー関数でシンプルに表記できます。
void main() {
print("a circumference of 5cm radius is ${getCircumference(5)}.");
print("a circumference of 5cm radius is ${getCircum(5)}.");
}
num getCircumference(num radius) {
num circumference = 2 * 3.14 * radius;
return circumference;
}
num getCircum(num radius) => 2 * 3.14 * radius;
a circumference of 5cm radius is 31.400000000000002.
a circumference of 5cm radius is 31.400000000000002.
引数がたくさんある場合は、引数の名前を付けることもできます。これは、趣味だと思いますが・・
void main() {
getPerimeter(4, 5);
getArea(7, 9);
print("The volume is ${getVolume(8, height: 4, breadth: 7)}.");
}
getPerimeter(int length, int breadth) {
int perimeter = 2 * (length + breadth);
print("The perimeter is $perimeter.");
}
getArea(int length, int breadth) {
int area = length * breadth;
print("The area is $area.");
}
getVolume(int length, {int breadth, int height}) => length * breadth * height;
実行結果は以下の通りです。
The perimeter is 18.
The area is 63.
The volume is 224.