美文网首页
Dart语言基础-变量声明与函数声明

Dart语言基础-变量声明与函数声明

作者: 柳源居士 | 来源:发表于2019-08-01 23:07 被阅读0次
    1. var声明的变量
      var 声明变量,可以接受任意类型。但是变量一经赋值,类型就被确定,不能再更改。这点与js 里不一样。
      dart是强类型语言。
    2. object 与dynamic
      dart中,所有类型都是object的子类,包括Function和Null。任何类型的数据都可以赋值给Object声明的对象.
      dynamic是dart的关键字,与object一样,其字面含义是活跃的,声明的变量可以在赋值后更改类型。
      不同点:
      dynamic 声明的变量编译时会提供尽可能的属性与方法,而object声明的变量只能使用object的属性与方法。
      dynamic 的这个特点使得我们在使用它时需要格外注意,这很容易引入一个运行时错误.
    3. final 与 const
      都声明常量。
      final与const声明的变量一经赋值,不能再更改。
      被final和const修饰的变量,类型在创建时可以省略。
      区别:
      final 是在第一次使用时初始化。编译时不确定。
      const是编译时确定。
    4. function
      dart中,函数也是一个对象,并且有一个类型Function。
      这意味着函数可以赋值给变量或作为参数传递给其他函数,这是函数式编程的典型特征。
    • 函数声明
      bool isNoble(int atomicNumber) {
          return _nobleGases[atomicNumber] != null;
      }
      

    注意:函数返回类型不会进行类型推断:如果不声明返回类型,则被当做dynamic处理。

    函数可以声明成变量,或者被当成参数传递。

    var sayHello = ()=>print "hello !";
    

    作为参数被传递:

    void execute(var callback) {
        callback();
    }
    execute(() => print("xxx"))
    
    • 函数参数
    String run(String name,String length,[String fell],{String drink,String eat} ){
      print '$name run $length';
    }
    

    注意:[] 和 {} 都表示可选参数
    []表示可选位置参数。function调用时,可以传也可以不传。
    {} 不是js里的对象,而是可选参数(named parameter)。调用时,用key:value来指定。
    如:

    run("xiaoming","15km",drink:water,eat:bread);
    

    使用“ = ”为位置参数设置默认值。
    如:

    String run(String name,String length,[String fell="happy"])
    

    相关文章

      网友评论

          本文标题:Dart语言基础-变量声明与函数声明

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