持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情
和JavaScript的区别
Dart语言规范已被纳入BCMA Script体系,但是和js语言是有差异的会增加一些记忆的成本,并且如果一直在这两种语言之前切换开发的话,有可能会导致写法混乱
函数方法
Dart中的函数也是和javascript一样,是支持函数嵌套,,包括自执行函数、闭包等,它也是生命在Main()函数中,调用时可以在最外层调用,注意这也是有作用域的
temp()
main(){
temp(){}
}
或者函数定义在最外层,在main函数内调用
传参
函数传参一旦定义好参数后,调用时则是必填项,缺一不可,而且顺序要正确,如果顺序错误会报错
temp(name,age){
print(name,age)
}
main(){
temp('小明',15)
}
如果函数需要返回值,那么需要在函数名称前加上返回类型void
void temp(name,age){
print(name,age)
}
- 可选参数的定义方式
如果少穿参数,则可以定义默认值为
null,或把没传过来的参数统一放到中括号内。可以理解为允许参数少传
void temp(name,age=null,[num,hello]){
print(name,age)
}
注意! 虽然是少传,但仍然要遵守传参顺序
参数定义严格的类型之后,那么少穿的参数会报错,原因:虽然是可选参数,但Dart2.0提倡的是在编译前,把所有的错误解决完成
void temp(name,int age=null,[int num,hello]){}
思路:一旦定义为严格类型之后,所传的参数不允许为空!俗称空安全
箭头函数
和js不一样的是,它的箭头函数只能写一行,它实际上是一个表达式,并且不用担心this问题,设计初衷是为了让代码更加简洁明了
temp.map(valuue=>prigin(value))
异步
异步分为Async、Await、Fulure类型,不同点:类型名称是写在方法名称后面,异步同步必须同时存在,
str async(){
String tes = await foo()
}
foo(){
return '33'
}
如果想要结果以Promise类型返回,那么需要在调用函数后面加async异步类型,而在Dart中是Fulure类型,在函数名称前加上
Fulure foo async(){
return '33'
}