Menu
CoddyTech

引数を使った関数

CoddyのFlutterジャーニー「アプリをインタラクティブにする」セクションの一部。レッスン 7/34。

関数は、呼び出すたびに値を受け取ることができます。その値はパラメーターで、型とともに括弧内に記述します。

void greet(String name) {
  print('Hi, $name!');
}

greet('Ada');    // こんにちは、Ada!
greet('Linus');  // こんにちは、Linus!

関数内では、nameは渡された値を保持する変数です。これで、1つの関数が多くの関数の役割を果たします。

ボタンだけでは値を渡せません。onPressed:が必要とするのは、パラメーターのない関数です。そこで、「最初のボタン」で学んだように、名前のない小さな関数で呼び出しを包みます。

ElevatedButton(
  onPressed: () { greet('Ada'); },
  child: Text('Ada'),
)
challenge icon

チャレンジ

簡単

orderTeaを、String drinkを受け取り、One Tea, please、One Coffee, please、またはOne Juice, pleaseを出力する関数orderに置き換えてください。3つすべてのボタンでこの関数を使ってください。

自分で試してみよう

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

void orderTea() {
  print('One Tea, please');
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              ElevatedButton(onPressed: orderTea, child: Text('Tea')),
              SizedBox(height: 12),
              ElevatedButton(onPressed: () {}, child: Text('Coffee')),
              SizedBox(height: 12),
              ElevatedButton(onPressed: () {}, child: Text('Juice')),
            ],
          ),
        ),
      ),
    );
  }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

アプリをインタラクティブにするのすべてのレッスン

自分で練習してみよう: Flutterオンラインコンパイラ