在Flutter 中不存在Java 方法重载概念,类似 test(), test(int a), test(String a) 这种一个类里面多个不同参数形式的相同名称的方法,但提供了可选参数构造方法。
看Flutter源码比较常见的可选参数形式是大括号 { } 实现的,可以指定具体传递某一个参数。
test(int a, {String b, String c}) {
// todo
}
如上面方法,a 是一定要传的参数,b,和c 是可选择的参数,使用的时候可以 test(10,b:"BBBB")或者test(10,b:"BBB",c:"ccccc") 就是使用哪些参数就选择哪些参数
Flutter 还提供了一种 [ ] 形式的可选参数,如
test(int a, [String b, String c]) {
// todo
}
这种形式的方法使用过程中不会出现b:xxx, 默认按照前后顺序传递,test(10,"bbb") 这种就是 a值为10,b的值为bbb
test(10,"bbb","test") 这种就是 a的值为10,b的值为bbb,c 为 test