Dart 语言简介(一)

一、变量声明

 1、var

类似于JavaScript 中的var ,它可接收其它类型的变量,但最大不同的是Dart 中的变量一旦赋值,类型便会确定,则不能改变其类型 ,如:

var t;

t=’Hello World’;
//下面代码在dart 中会报错,因为变量t的类型已经确定为String
//类型一旦确定后则不能更改其类
t= 1000;

2、dynamic 和Object

Object 是Dart 所有类型的根基类,也就是说所有的类型都是Object 的子类(包括Function 和 Null),所以任何类型的数据都可以赋值给Object 声明的对象,dynamic 与var 一样都是关键字,声明的变量可以赋值任意对象,而dymamic 对象与Object 相同之处在于,他们声明的变量可以在后期更改赋值类型。

dynamic  t= “Hello World”;
t= 1000;  //代码没有问题

  dynamic 与Object 不同的是,dynamic 声明的对象会提供所有可能的组合,而Object 声明的对象只能使用Object 的属性和方法,否则编译会失败,

dynamic  a;
object  b;
main(){
a=’’;
b=’’;
printlengths();
}

printlengths(){
print(a.length);
 // The getter 'length' is not defined for the class 'Object'
print(b.length):
}

 3、final  和 const

如果您从未打算更改一个变量,那么使用 final 或 const 不是 var ,也不是一个类型。一个final 变量只能被设置一次,两者区别在于:const 是一个编译时常量,final 变量在第一次使用是被初始化,被 final 或 const 修饰的变量,变量类型可以省略,如:

final str = ‘hi world’;
final String str = ‘Hi world’;
const str = “hi world”;
//const String str = “hi World”;

二、函数

Dart 是一种真正的面向对象的语音,所以即使是函数也是对象,并且,有一个类型是Function 。这意味着函数可以赋值给变量或者作为参数传递给其它函数,这是函数式编程的典型特征

1、函数声明

bool isNoble(int atomicNumber){
return _nobleGases[atomicNumber]!= null;
}

Dart 函数声明如果没有显式声明返回值类型是会默认当做 dynamic 类型处理,函数返回值没有类型判断:

isNoble(int atomicNumber){
return _nobleGases[atomicNumber]!= null;
}

//报错,isNoble 不是bool 类型
test(isNoble)

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

bool isNoble(int atomicNumber) => _nobleGases[atomicNuber]!=null;

3、函数作为变量

var say = (str){

print(str);

}

say(“hi world”);

 4、函数作为参数传递

void execute(var callBack){
callBack();
}


execute(()=>print(‘xxx’));

5、可选位置参数

包含一组函数参数,用[]标记为可选的位置参数:

String say(String from ,String msg,[String device]){
var result = ‘$from says $ msg’;
if(device != null){
result = “$from say msg with a $device”;
}
return result;
}

say('Bob', 'Howdy');

say('Bob', 'Howdy', 'smoke signal');

 

6、可选的命名参数

void enableFlags({bool bold,hool hidden}){
};

enableFlags(bold:false,hidden:false);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值