Dart

Dart-Functions(函数)

2019-06-11  本文已影响0人  Air_w

Dart-Functions(函数)

/*
Dart 是一种真正的面向对象语言,因此即使是函数也是对象并且具有类型Function
这意味着函数可以分配给变量或作为参数传递给其他函数,您也可以调用Dart类的实例
*/

目录:
1、define function(定义函数)
2、ignore return type(省略返回类型的定义)
3、dynamic return type(动态返回类型的定义)
4、optional parameter(函数的可选参数)
5、Required parameters(必选参数)
6、anonymousFunction(匿名函数)
7、nestFunction(嵌套函数)
8、Function type(函数也是一种具有Function类型的对象)

1、define function(定义函数)


/*
Define function.
 */
bool isBool(int a, int b) {
  return a == b;
}

对于只包含一个表达式的函数,可以使用简写语法:


bool isNobel(int a, int b) => a == b;

2、ignore return type(省略返回类型的定义)


/*
ignore the define of return type:bool
 */
isBoolTwo(int a, int b) {
  return a == b;
}

3、dynamic return type(动态返回类型的定义)

/*
this function's return type is dynamic,
is int
is bool
is String
 */
isBoolThree(int a, int b) {
  if (a < b) {
    return a;
  } else if (a == b) {
    return true;
  } else if (a > b) {
    return "min:${b}";
  }
}

4、optional parameter(可选参数的函数)

/*
Optional parameters
可选函数、命名函数
 */
isBoolFour({int a, int b}) {
  if (a < b) {
    return a;
  } else if (a == b) {
    return true;
  } else if (a > b) {
    return "min:${b}";
  }
}


  //调用可选/命名参数时,传递的参数的
  print("optional parameters:${isBoolFour(b: 1, a: 2)}");

一组函数参数
[]


dynamic functionArray(String name, [String arguments]) {
  return arguments?.length;
}


5、Required parameters(必选参数)

@required


/*
Required parameters
 */
isBoolFive({int a = 0, @required int b}) {
  if (a == null) {
    return b;
  } else {
    return a + b;
  }
}


  //调用带有必须参数的,命名函数
  print("required parameters:${isBoolFive(b: 5)}");

6、anonymousFunction(匿名函数)

/*
Define anonymous function
 */
anonymousFunction() {
  print("");
  print("Anonymous function.");
  var list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

  list.forEach((item) {
    print("item:${item}");
  });
}

7、nestFunction(嵌套函数)


bool topLevel = true;

void nestTopLevelFunction() {
  var insideMain = true;

  void myFunction() {
    var insideFunction = true;

    void nestedFunction() {
      var insideNestedFunction = true;

      print(topLevel);
      print(insideMain);
      print(insideFunction);
      print(insideNestedFunction);
    }

    nestedFunction();
  }

  myFunction();
}

8、Function type(函数也是一种具有Function类型的对象)


void functionType(num a) {
  num a;
  int b;
  double c;
  String d;
  bool e;
  Function f;

}

未完待续。。。

上一篇 下一篇

猜你喜欢

热点阅读