带参数的函数
本课属于 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'),
)挑战
简单将 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')),
],
),
),
),
);
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
让应用具有交互性中的所有课
自己练习: Flutter 在线编译器