3-2.Dartのパラメータと戻り値

1. パラメータとは

パラメータは、関数に値を渡すための変数です。関数の呼び出し元から関数にデータを渡すために使用されます。Dartでは、位置パラメータ、名前付きパラメータ、デフォルトパラメータを使用することができます。

位置パラメータ

位置パラメータは、関数を呼び出すときに引数を順番に指定するパラメータです。

Dart
void greet(String name, int age) {
  print('Hello, $name! You are $age years old.');
}

void main() {
  greet('Alice', 30); // Hello, Alice! You are 30 years old.
}

名前付きパラメータ

名前付きパラメータは、関数を呼び出すときに引数を名前で指定するパラメータです。これにより、引数の順序に依存せずに値を渡すことができます。

Dart
void greet({String name, int age}) {
  print('Hello, $name! You are $age years old.');
}

void main() {
  greet(name: 'Alice', age: 30); // Hello, Alice! You are 30 years old.
  greet(age: 25, name: 'Bob'); // Hello, Bob! You are 25 years old.
}

デフォルトパラメータ

デフォルトパラメータは、引数が省略された場合に使用されるデフォルトの値を指定するパラメータです。

Dart
void greet({String name = 'Guest', int age = 0}) {
  print('Hello, $name! You are $age years old.');
}

void main() {
  greet(); // Hello, Guest! You are 0 years old.
  greet(name: 'Alice'); // Hello, Alice! You are 0 years old.
  greet(age: 30); // Hello, Guest! You are 30 years old.
}

2. 戻り値とは

戻り値は、関数が呼び出し元に返す値です。関数は、returnキーワードを使用して戻り値を返します。戻り値の型は、関数の定義で指定します。

基本的な戻り値の使用

Dart
int add(int a, int b) {
  return a + b;
}

void main() {
  int result = add(3, 5);
  print('Sum: $result'); // Sum: 8
}

複数の戻り値を返す

Dartでは、関数から複数の値を返すために、タプルやカスタムクラスを使用します。

タプルを使用する場合

Dart
List<int> swap(int a, int b) {
  return [b, a];
}

void main() {
  List<int> result = swap(3, 5);
  print('Swapped: ${result[0]}, ${result[1]}'); // Swapped: 5, 3
}

カスタムクラスを使用する場合

Dart
class Pair {
  int first;
  int second;

  Pair(this.first, this.second);
}

Pair swap(int a, int b) {
  return Pair(b, a);
}

void main() {
  Pair result = swap(3, 5);
  print('Swapped: ${result.first}, ${result.second}'); // Swapped: 5, 3
}

3. 例題

例題1: 位置パラメータと戻り値

Dart
int multiply(int a, int b) {
  return a * b;
}

void main() {
  int result = multiply(4, 5);
  print('Product: $result'); // Product: 20
}

例題2: 名前付きパラメータとデフォルトパラメータ

Dart
void describe({String name = 'Unknown', int age = 0}) {
  print('Name: $name, Age: $age');
}

void main() {
  describe(name: 'Alice', age: 30); // Name: Alice, Age: 30
  describe(age: 25); // Name: Unknown, Age: 25
  describe(); // Name: Unknown, Age: 0
}

例題3: 複数の戻り値を返す関数

Dart
class Result {
  int sum;
  int difference;

  Result(this.sum, this.difference);
}

Result calculate(int a, int b) {
  int sum = a + b;
  int difference = a - b;
  return Result(sum, difference);
}

void main() {
  Result result = calculate(10, 3);
  print('Sum: ${result.sum}, Difference: ${result.difference}'); // Sum: 13, Difference: 7
}

↓次回内容:

3-3.Dartの変数のスコープ

1. 変数のスコープとは
スコープとは、プログラム内で変数が有効となる範囲のことを指します。変数のスコープには、グローバルスコープとローカルスコープの2種類があります。スコープの概念を理解することで、変数の使用範囲を明確にし、プログラムの可読性と保守性を向上させることができます。
2. グローバルスコープ
グローバルスコープにある変数は、プログラム全体でアクセス可能です。グローバル変数は、関数やクラスの外で宣言されます。

コメントを残す