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

2019-08-01  本文已影响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。
    这意味着函数可以赋值给变量或作为参数传递给其他函数,这是函数式编程的典型特征。

注意:函数返回类型不会进行类型推断:如果不声明返回类型,则被当做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"])
上一篇 下一篇

猜你喜欢

热点阅读