Menu
CoddyTech

带参数的函数

本课属于 Coddy Flutter 学习旅程的“让应用具有交互性”单元。第 7 课,共 34 课。

每次调用函数时,都可以向它传入一个值。这个值是一个参数,写在括号中,并注明它的类型:

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

greet('Ada');    // 嗨,Ada!
greet('Linus');  // 嗨,Linus!

在函数内部,name 是一个变量,用来保存传入的值。这样,一个函数就能完成许多函数的工作。

按钮本身无法传入值:onPressed: 需要一个没有参数的函数。因此,你可以把调用包装在一个没有名称的小函数中,这种函数你在“你的第一个按钮”这一课中见过:

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

挑战

简单

将 orderTea 替换为一个名为 order 的函数,它接受 String drink 并打印 One Tea, please、One Coffee, please 或 One Juice, please。让这三个按钮都使用它。

亲手试试

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 在线编译器