libro
www.tuyano.com
初心者のためのDart 2入門

関数を利用する (2/6)

作成:2018-03-31 08:05
更新:2018-03-31 08:05

■関数を定義する

では、実際に簡単な関数を定義してみましょう。関数は「引数があるもの、ないもの」「戻り値があるもの、ないもの」で定義の仕方、呼び出し方も変わってきます。例として、簡単なメッセージを表示する関数を作成しながら、関数定義の実際を見ていきましょう。

・引数、戻り値のない関数
hello() {
  print('Hello!!');
}
これは、単純に「Hello!!」と表示するだけのものです。戻り値も引数もないので、単に「hello()」と書いて、その後の{}内に処理を書くだけです。これが関数のもっとも基本的な形となります。

「何も戻り値がないのはなんか変な感じ」と思う人は、「void」を使うと良いでしょう。こんな具合に記述するのです。
void hello() {……}
このvoidは、「何も返さない」ことを示すキーワードです。こうすれば、より「戻り値がない」ということをはっきり示すことができます。

・引数のある関数
void hello(nm) {
  print('Hello, ${nm}!!');
}
ここでは、引数のところが(nm)となっています。nmという変数に値が渡されるようになっているのがわかりますね。printでは、この値を使ってメッセージを表示しています。引数を持つ関数では、このように渡された引数の変数を利用して処理を作成します。

また、ここでは (nm) というように引数を指定してありますが、これだとどんな型の値を渡すのかわかりません。型まで厳密に定義したい場合は、(String nm)というように、変数の前に型名をつけて記述しておくこともできます。


・戻り値のある関数
String getHello(nm) {
  return 'Hello, ${nm}!!';
}
ここでは、更に結果を呼び出し元に返すようにしてあります。戻り値には「String」と指定をしていますね。これで、テキストの値を返す関数であることがわかります。「値を返す」というのは、このように行います。
return 値 ;
このreturnというキーワードは、ここで処理(関数)を抜け、呼び出した側に値を返す働きをします。ここで処理を抜けるので、このreturnより後になにかの処理が書いてあっても、それらは実行されません。


■関数の呼び出し方

関数の定義の仕方がわかったら、実際にこれらの関数をどのように呼び出して実行するかを見てみましょう。
void main() {
  hello();
  sayHello('taro');
  var res = getHello('hanako');
  print('message: ${res}');
}
ここでは、例に上げた3つの関数を呼び出してみました。関数の呼び出しは、こんな形で行っているのがわかります。
関数名 ( 引数の値 )
戻り値を持つ関数は、呼び出した関数を変数に代入していますね。戻り値のある関数は、「返される値と同じもの」として扱うことができます。例えば、ここではgetHelloはテキストの値を返しますから、getHello関数は「テキストの値」と同じものとして、変数に代入したり、式などの中でつかったりすることができるのです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void main() {
  hello();
  sayHello('taro');
  var res = getHello('hanako');
  print('message: ${res}');
}

void hello() {
  print('Hello!!');
}

void sayHello(nm) {
  print('Hello, ${nm}!!');
}

String getHello(nm) {
  return 'Hello, ${nm}!!';
}
※関連コンテンツ

「初心者のためのDart 2入門」に戻る