Dart学习7、Dart方法详解(一)

方法的定义以及作用域

自定义方法的基本格式
返回类型 方法名称 (参数1,参数2...){
	 方法体
	 return 返回值;
 }
//定义一个没有返回值的方法  void表示该方法没有返回值
void printInfo(){
  print("我是一个自定义的方法");
}

//定义一个带有返回值(返回类型为int)的方法
int getNum(){
  var myNum = 123;
  return myNum;
}

void main(List<String> args) {
  print("调用系统内置的方法");
  printInfo();//我是一个自定义的方法
  print(getNum());//123
  print(getNum());//一个方法可以调用多次

  //方法作用域
  void aaa(){
    bbb(){
      print("内方法");
      print(getNum());//可以调用getNum,因为getNum方法在最外层
    }
    bbb();
  }
  //bbb();//报错  因为bbb方法是在局部作用域
  aaa();
}

调用方法传参

  1. 定义一个方法,求1到这个数的所有数的和

     如果知道返回类型,建议写上返回类型,参数也建议约束下类型,不然传参的时候可能会引起报错
    
int sumNum(int n) {
  var sum = 0;
  for (var i = 1; i <= n; i++) {
    sum += i;
  }
  return sum;
}
void main() {
  print(sumNum(5)); //15
  print(sumNum(100)); //5050
}
  1. 定义一个方法,然后打印用户信息
String printUserInfo(String userName, int age){//这里的参数叫行参
  return "姓名:$userName---年龄:$age";
}
void main() {
  //传入的参数叫实参
  print(printUserInfo("张三", 23));//姓名:张三---年龄:23
  print(printUserInfo("李四", 32));//姓名:李四---年龄:32
}
  1. 定义一个带可选参数的方法

     1、如果同时包含可选参数和必需参数,必需的参数在参数列表前面, 可选数在后面。
     2、在必选参数后,用[]或者{}框起来的参数叫可选参数,在传参的时候可以选择不传
     3、注意:Dart在2.12版本之后开始支持空安全(Null Safety):空安全是一种对可能为空的变量在编译期就进行校验的一种审查机制,有了空安全,原本处于运行时的空值引用错误将变为编辑时的分析错误。这种检查机制对所有变量的默认值也进行了改变,以前默认为null,而使用空安全后,代码中的类型将默认是非空的,意味着除非你声明它们可空,否则它们的值都不能为空并且会报错
     4、创建变量时,如果想要一个变量可为null,需要显式声明为可空的类型,具体就是使用“?”进行声明。比如int?等,表示变量是一个可空类型,可以赋值为空。
     5、或者给可选参数赋默认值int age = 0
    
String getUserInfo(String userName, [int? age]){
  if (age !=null) {
    return "姓名:$userName---年龄:$age";
  } else {
    return "姓名:$userName";
  }
}
void main(List<String> args) {
  print(getUserInfo("王二"));//姓名:王二
//如果可选参数使用{}框起来的,在传参的时候需要使用paramName:value的形式指定为哪个可选参数赋值   
 // print(getUserInfo("麻子",age:25));//姓名:麻子---年龄:25
  print(getUserInfo("麻子",25));//姓名:麻子---年龄:25
}
  1. 定义一个把方法当参数的方法
void main(List<String> args) {
 fn1(){
  print("I`m fn1");
}
fn2(fn){
  fn();
}
fn2(fn1);//I`m fn1
//定义一个匿名方法
  var fn = () {
    print("我是一个匿名方法哦");
  };
  fn();//我是一个匿名方法哦
}

记录Dart学习,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JMchen123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值