美文网首页
Dart中的函数|方法参数

Dart中的函数|方法参数

作者: 三米板 | 来源:发表于2019-09-19 18:27 被阅读0次

命名参数

在类似于java,php,c++ 等高级语言中,函数的定义和抽象基本如下:

//定义
int achievement(int Chinese ,int Mathematics){
  return Chinese+Mathematics ; 
}
//调用
//调用时,就已经定死了,前面的这个参数是语文成绩,后边是数据成绩。感觉像是一个队列形式的传参方式,且此队列顺序不可乱。
int result = functionPlus(99,89);

在使用Dart时,有一种类似于Map传形式的参方式:命名参数。

//函数的定义:
int achievement({int chinease ,int mathMatic}){
  print('chinease -> $chinease , mathMathic -> $mathMatic') ;
  return chinease + mathMatic ;
}
//函数调用:
achievement(chinease: 21 , mathMatic: 39);
achievement(mathMatic: 39 , chinease: 21) ;

好处在于,我们可以使用类似于键值的形式去传参
1.代码阅读性强
2.参数传递顺序不受限

当然我们也可以使用正常的方式

定义:
int achievementNormal(int chin ,int math){
  print("chiniease -> $chin  mathMatic -> $math" );
  return chin + math ;
}
//调用
achievementNormal(20, 30) ;

必传参数@required

如果有参数是必传,我们可以在函数定义的时候,使用@required来修饰:

//函数的定义:
int achievement({int chinease ,@required int mathMatic}){
  print('chinease -> $chinease , mathMathic -> $mathMatic') ;
  return chinease + mathMatic ;
}

可选参数

Dart还给我们准备了可选参数:

//定义 ,普通的函数|方法定义
int achievementNormal(int chin ,int math , [int history]){
  print("chiniease -> $chin  mathMatic -> $math  history-> $history" );
  return chin + math ;
}

//调用
achievementNormal(20, 30 ,20) ;
achievementNormal(20, 33) ;

但是可惜的是,通过测试,在命名参数形式中,不能使用可选参数。即:必传参数和可选参数不可共同出现在一个方法|函数中。

参数默认值

//为命名参数设置默认值的示例
void enableFlags({bool bold = false, bool hidden = false})
 {...}

//设置位置参数的默认值
String say(String from, String msg, [String device = 'carrier pigeon', String mood])
 {...}
//还可以将列表或map集合作为默认值
void doStuff({List<int> list = const [1, 2, 3],
    Map<String, String> gifts = const {
      'first': 'paper',
      'second': 'cotton',
      'third': 'leather'
    }}) 
{...}

注意:
1.默认值必须是编译时常量
2.如果没有提供默认值,则默认值为null
3.建议您使用'='来指定默认值

相关文章

  • Dart语法(下)

    前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...

  • Dart中的函数|方法参数

    命名参数 在类似于java,php,c++ 等高级语言中,函数的定义和抽象基本如下: 在使用Dart时,有一种类似...

  • Dart基础语法<五> 参数

    本节主要记录Dart方法参数中的 可选位置参数 默认参数 可选命名参数 在java中经常会出现各种重载函数 但一旦...

  • Dart独特的使用方式(session one)

    1.位置可选参数 Dart中的函数可以包含可选参数。可选参数是函数调用者可以选择不提供的参数。可以在函数内检查可选...

  • dart基础---函数

    Dart中函数是对象其类型为Function,可以作为参数被另一个函数调用也可以作为一个变量。Dart中不支持函数...

  • Dart入门03 -- 函数,闭包,运算符,枚举

    函数 函数的定义 函数返回值类型可以省略,开发中不推荐这么写; 函数的参数 Dart中不支持函数的重载; 函数的参...

  • 04Dart:中的函数式编程

    Dart 中的函数式编程 将函数当做参数进行传递 将函数直接赋值给变量 对函数进行解构,只传递给函数一部分参数来调...

  • 带你Dart带你飞之Functions

    Functions(方法) 方法的参数入口函数一等方法对象匿名方法静态作用域词法闭包 Dart 是一个真正的面向对...

  • Flutter/Dart - 函数详解

    Dart中的函数定义的几种方式 定义一个方法 求1到这个数的所有数的和 定义一个方法然后打印用户信息 可选参数 默...

  • 【Flutter】Dart语法篇之类型系统与泛型(七)

    一、可选类型 在Dart中的类型实际上是可选的,也就是在Dart中函数类型,参数类型,变量类型是可以直接省略的。 ...

网友评论

      本文标题:Dart中的函数|方法参数

      本文链接:https://www.haomeiwen.com/subject/ljjqyctx.html