01 方法的定义 变量 方法的作用域
内置方法/函数: print(); 自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; }
void printInfo() { print('我是一个自定义方法'); } int getNum() { var myNum = 123; return myNum; } String printUserInfo() { return 'this is str'; } List getList() { return ['111', '2222', '333']; } void main() { // print('调用系统内置的方法'); // printInfo(); // var n = getNum(); // print(n); // print(printUserInfo()); // print(getList()); // print(getList()); //演示方法的作用域 void xxx() { aaa() { print(getList()); print('aaa'); } aaa(); } // aaa(); 错误写法 xxx(); //调用方法 }
02 方法传参 、默认参数、可选参数、命名参数 、方法作为参数
main() { //1、定义一个方法 求1到这个数的所有数的和 60 1+2+3+...+60 // int sumNum(int n) { // var sum = 0; // for (var i = 1; i <= n; i++) { // sum += i; // } // return sum; // } // var n1 = sumNum(5); // print(n1); // var n2 = sumNum(100); // print(n2); //2、定义一个方法然后打印用户信息 // String printUserInfo(String username, int age) { // //行参 // return "姓名:$username---年龄:$age"; // } // print(printUserInfo('张三', 20)); //实参 //3、定义一个带可选参数的方法 // String printUserInfo(String username, [int age = 0]) { // //行参 // if (age != 0) { // return "姓名:$username - 年龄:$age"; // } // return "姓名:$username - 年龄保密"; // } // // print(printUserInfo('张三', 21)); //实参 // print(printUserInfo('张三')); //4、定义一个带默认参数的方法 // String printUserInfo(String username, [String sex = '男', int age = 0]) { // //行参 // if (age != 0) { // return "姓名:$username---性别:$sex--年龄:$age"; // } // return "姓名:$username---性别:$sex--年龄保密"; // } // print(printUserInfo('张三')); // print(printUserInfo('小李', '女')); // print(printUserInfo('小李', '女', 30)); //5、定义一个命名参数的方法 // String printUserInfo(String username, {int age = 0, String sex = '男'}) { // //行参 // if (age != 0) { // return "姓名:$username---性别:$sex--年龄:$age"; // } // return "姓名:$username---性别:$sex--年龄保密"; // } // print(printUserInfo('张三', age: 20, sex: '未知')); //6、实现一个 把方法当做参数的方法 // var fn = () { // print('我是一个匿名方法'); // }; // fn(); fn1() { print('fn1'); } fn2(fn) { fn(); } //调用fn2这个方法 把fn1这个方法当做参数传入 fn2(fn1); }