1 函数定义

(1) 普通函数

  1. 返回值 函数的名称(参数列表) {
  2. 函数体
  3. return 返回值
  4. }

示例:

  1. int sum(int num1, int num2) {
  2. return num1 + num2;
  3. }
  4. // 也可简写为
  5. sum(num1, num2) {
  6. return num1 + num2;
  7. }

(2) 箭头函数

这里面只能是一个表达式, 不能是一个语句

  1. sum(num1, num2) => num1 + num2;

(3) 匿名函数

  1. void main(List<String> args) {
  2. // 实名函数
  3. test(bar);
  4. // 匿名函数
  5. test(() {
  6. print("匿名函数被调用");
  7. });
  8. // 匿名箭头函数
  9. test(() => print("匿名箭头函数被调用"));
  10. }
  11. // 接收一个函数作为参数
  12. void test(Function foo) {
  13. foo();
  14. }
  15. void bar() {
  16. print("bar函数被调用");
  17. }

2 可选参数

(1) 可选位置参数

  1. // 可选位置参数
  2. void sayHello(String name, [int age=10, double height=1.60]) {
  3. print(name.toString() + height.toString());
  4. }
  5. // 可选位置参数必须按顺序传, 不能先传height, 再传age
  6. sayHello("张三");
  7. sayHello("张三", 28);
  8. sayHello("张三", 28, 1.64);

(2) 可选命名参数

  1. // 可选命名参数,
  2. void sayHello2(String name, {int age, double height=1.60}) {
  3. print(name.toString() + height.toString());
  4. }
  5. // 可以对{}中任意位置的参数进行传参
  6. sayHello2("gates", height: 1.85);

3 函数别名

  1. typedef Calculate = int Function(int, int);