【Flutter/Dart】関数の使い方/基礎から実践

最終更新日

この記事では、Dartの基本文である関数についてまとめました。

基礎から実践までサンプルがあります。

動かすにはDartpadを使用してください。

関数とは

関数とは、コンピュータプログラム上で定義されるサブルーチンの一種で、数学の関数のように与えられた値(引数)を元に何らかの計算や処理を行い、結果を呼び出し元に返すもののこと。

https://e-words.jp/w/%E9%96%A2%E6%95%B0.html#:~:text=%E9%96%A2%E6%95%B0%E3%81%A8%E3%81%AF%E3%80%81%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0,%E5%85%83%E3%81%AB%E8%BF%94%E3%81%99%E3%82%82%E3%81%AE%E3%81%AE%E3%81%93%E3%81%A8%E3%80%82

定義

(型) 関数名((型)引数){
処理
  return 要素;
}

Dartの関数

公式サイト

https://dart.dev/guides/language/language-tour#the-main-function

https://dart.dev/guides/language/language-tour#function

voidとは

使用されたことのない値を示す特殊なタイプ。のような関数printInteger()とmain()明示的に値を返さない関数には、void戻り型があります。https://dart.dev/guides/language/language-tour#the-main-function

基本的な関数

サンプルー基本

void main() {
  hello();
}

void hello() {
  print("Hello Flutter");
}

解説

一番基本的な関数の仕組みです。

  1. void mainでhello関数を呼び出します
  2. hello関数でprint(“Hello Flutter”);を表示

このような流れで出力させています。

サンプルーアロー関数

関数の短縮形です。アロー関数と呼びます。実践では、

runApp=>(MyApp());

というようにして使います。

アロー演算子/アロー関数についてこちらで解説しております。

サンプルーアロー関数①

void main(){
  isZero(num) => num == 0;
  print(isZero);
  }

Closure(クロージャー)

https://devstory.net/14061/dart-closures#a64475122

解説

サンプルーアロー関数②

void main() {
  int added = add(num1: 10, num2: 5);
  total(total: added);
}

int add({int num1 = 0, int num2 = 0}) => num1 + num2;
void total({int total = 0}) => print("合計値:$total");

引数()の中にある[]や{}については、オプションパラメータとは?でまとめています。

解説

  1. 変数addedに名前付き(後の章で出てきます)でnum1,num2の関数を格納
  2. totalを宣言
  3. 関数addにnum1,num2をした結果を格納する 
  4. 最後にtotalを格納して出力

return

returnでは戻り値(関数で計算した結果)を設定できます。

※ただし

  • 戻り値の指定は任意のため省略することが可能です。
  • void関数ではreturnが使えません。

引数あり

サンプル① return型:名前付きパラメータ

void main() {
  String language1 = nullValue(language: "Dart");
  String language2 = setValue();

  print(language1);
  print(language2);
}

String nullValue({String? language}) {
  return "$languageを勉強中";
}

String setValue({String? language = "Flutter"}) {
  return "$languageを勉強中";
}

サンプル② return型:パラメータのみ

void main() {
  String whichLanguage = studyLanguage("Dart");
  print(whichLanguage);
}

String studyLanguage(String language) {
  return "$languageを勉強中";
}

引数なし

サンプル①

void main() {
  String name = Language();
  print("$name is fun!");
}

String Language() {
  return "Dart";
}

引数とパラメーター

引数の型を指定しています。ちなみに、Hello関数に整数型を入れると、文字型の数字になります。

サンプル

void main() {
  Hello("Flutter");
}

void Hello(String name) {
  print("$name is fun");
}

関数の利用と値の代入

サンプル

void main() {
  nullValue(name: "Flutter");
  setValue(); //関数で指定した初期値が使われる
}

void nullValue({String? name}) {
  print("$name is fun");
}

void setValue({String? name = "Dart"}) {
  print("$name is fun");
}

その他の関数

他にも関数には以下のようなものもあります。

参考

https://dev.classmethod.jp/articles/dart_reference_functions/

https://www.cresc.co.jp/tech/java/Google_Dart2/language/functions/functions.html

https://flutternyumon.com/dart-how-to-use-named-function/

fem