Dartのメソッドと関数の違いとは

Flutter/Dart

この記事では、Dartのメソッドと関数の違いについて書いていきます。

メソッドとは

「オブジェクト(データやクラス)に紐づいた『関数(処理)』」のことです。

メソッドと関数との違い

独立したものかどうか」です。

  • 関数 (Function): 単体で独立している処理。どこにも属しておらず、いつでも呼び出せます。
    • ​イメージ: 自販機やゴミ箱(街中にぽつんと置いてあって、誰でも使える)
  • メソッド (Method): 特定のデータ(オブジェクト)やクラスの中に所属している処理。「データ名.メソッド名()」の形で呼び出します。
    • ​イメージ: スマホの「カメラを起動する」機能(スマホという“モノ”に付いている機能なので、スマホがないと使えない)

以下の例で詳しく説明すると

メソッド

void main() {
  String text = "hello";

  // text(文字列データ)が持っている「大文字にする」というメソッド(必殺技)
  String result = text.toUpperCase(); 

  print(result); // HELLO
}

オリジナルのメソッドを作り実行してみる。

// 「犬」という設計図(クラス)を作る
class Dog {
  String name = "ポチ"; // プロパティ(名詞:データ)

  // これがメソッド(動詞:処理・アクション)!
  void bark() {
    print("$nameは「ワンワン!」と吠えた!");
  }
}

void main() {
  Dog myDog = Dog(); // ポチが誕生

  // ポチの「吠える」というメソッドを実行する
  myDog.bark(); // 出力: ポチは「ワンワン!」と吠えた!
}

関数

void関数は、何もデータを返さないのが特徴です。そのためvoid関数はreturnをあまり書きません

// ① 関数を定義する(作る)
void sayHello() {
  print("こんにちは!");
}

void main() {
  // ② 関数を呼び出す(使う)
  sayHello(); // 出力: こんにちは!
  sayHello(); // 出力: こんにちは!(何度でも呼び出せる!)
}

greet関数で定義しmain関数で処理する場合

// 引数として「名前(name)」を受け取る関数
void greet(String name) {
  print("ひさしぶり、$nameさん!");
}

void main() {
  // 関数を呼び出すときに、具体的なデータを渡す
  greet("たかし"); // 出力: ひさしぶり、たかしさん!
  greet("さくら"); // 出力: ひさしぶり、さくらさん!
}

引数ありの関数(returnで返す例)

// 2つの数字を足し算して、その結果(int型)を「返す」関数
int add(int a, int b) {
  int sum = a + b;
  return sum; // 「return」で結果を外に送り出す
}

void main() {
  // 関数の計算結果を受け取って、変数に入れる
  int result = add(5, 3); 

  print(result); // 出力: 8
}
// 左側が String なので、returnで文字列データを返さないとエラーになる
String greet(String name) {
  return "ひさしぶり、$nameさん!"; 
}

void main() {
  // 返ってきたデータを受け取って、後から使う
  String message = greet("たかし");
  print(message); 
}
String class – dart:core library – Dart API
API docs for the String class from the dart:core library, for the Dart programming language.
タイトルとURLをコピーしました