|

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.

類似投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.