Flutter - Dart - 函数

2024-07-03  本文已影响0人  rainy66

函数
函数声明

void test1() {
  print('aaa');
}

test2(num a) {
  print('bb $a');
}


test3(String c) {
  print(c + c);
}

test4(int d) => print(d);

test5(int e) => e + 5;

void test6() {
  test7(a: true, b: 3); //指定可选参数名字进行传智,可以不全传值 c 是常量  这里输出为 3 ccc
}

void test7({bool a, int b, String c: 'ccc'}) {
  if (a) {
    print(b);
    print(c);
  } else {
    print(b * b);
  }
}

  1. 使用[] 包含参数,放在参数列表最后
  2. 可放多个参数
  3. 可设置默认值

String test8(String from, String msg, [String device, bool sex = true]) {
  var result = '$from says $msg';
  if (device != null) {
    result = '$result with a $device $sex';
    ;
  }
  return result;
}

void test9() {
  //调用时, 可选参数的位置和类型要与申明时一致
  String result = test8('aa', 'bb');
  print(result); //aa says bb

  String result1 = test8('cc', 'dd','iPhone');
  print(result1); //cc says dd with a iPhone true

}


void test10(){
  //将函数传递进去
   test11(test12, 3);
}

  // 参数中有个类型为函数的参数

void test11(Function f,int p){
   f(p);
}

//定义一个函数
void test12( int a){
    print(a);
}


void test13(){
  var result = test14; //将函数赋值给变量
  result(5);
}

void test14( int a){
   print(a * a); //25
}



void test15(){
   var result = test16('test16');
   print(result);
}
 test16(String a){
   print(a); //null
}


  1. 在Dart中一切皆对象,那么函数也是对象,既然是对象,那么必然有其类。所有的类继承Object,而函数的类是Function,但是Function并不能描述一个具体的函数信息:比如返回值,参数个数和参数类型
  2. typdef 就是为一个具体的函数信息声明其类型 ,如一个方法

int sum(int a, int b){
  return a + b ;
}


typedef int FunctionType(int a, int b);

int compute(FunctionType fun, a,b){
  return fun(a, b);
}

int sub(int a, int b){
  return a-b;
} 


//特殊函数,是程序的入口
void main(List<String> args) {
  test1(); //aaa
  test2(2); //bb 2
  test3('cc'); //cccc
  test4(4); //4
  print(test5(5));
  test6();
  test9();
  test10();
  test13();

  int sumNum = compute(sum,3,4);
  int subNum = compute(sub,10, 2);
  print(sumNum); //7
  print(subNum); //8
}
上一篇 下一篇

猜你喜欢

热点阅读