dart语言学习2

1.Functions(方法)
Dart 是一个真正的面向对象语言,方法也是对象并且具有一种 类型, Function。 这意味着,方法可以赋值给变量,也可以当做其他方法的参数。 也可以把 Dart 类的实例当做方法来调用。

下面是定义方法的示例:

bool isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
虽然在 Effective Dart 中推荐 在公开的 APIs 上使用静态类型, 你当然也可以选择忽略类型定义:

isNoble(atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
对于只有一个表达式的方法,你可以选择 使用缩写语法来定义:

bool isNoble(int atomicNumber) => _nobleGases[atomicNumber] != null;
这个 => expr 语法是 { return expr; } 形式的缩写。=> 形式 有时候也称之为 胖箭头 语法。

2.Optional positional parameters(可选位置参数)
把一些方法的参数放到 [] 中就变成可选 位置参数了:

String say(String from, String msg, [String device]) {
var result = ‘$from says KaTeX parse error: Expected '}', got 'EOF' at end of input: … result = 'result with a $device’;
}
return result;
}

3.Default parameter values(默认参数值)
在定义方法的时候,可以使用 = 来定义可选参数的默认值。 默认值只能是编译时常量。 如果没有提供默认值,则默认值为 null。

下面是设置可选参数默认值的示例:

void enableFlags({bool bold = false, bool hidden = false}) {
// …
}
enableFlags(bold: true);
3.可选参数,默认参数,键值对形式的例子
在这里插入图片描述
4.Cascade notation (…)(级联操作符)

级联操作符 (…) 可以在同一个对象上 连续调用多个函数以及访问成员变量。 使用级联操作符可以避免创建 临时变量, 并且写出来的代码看起来 更加流畅:

例如下面的代码:
querySelector(’#button’) // Get an object.
…text = ‘Confirm’ // Use its members.
…classes.add(‘important’)
…onClick.listen((e) => window.alert(‘Confirmed!’));
第一个方法 querySelector() 返回了一个 selector 对象。 后面的级联操作符都是调用这个对象的成员, 并忽略每个操作 所返回的值。

上面的代码和下面的代码功能一样:
var button = querySelector(’#button’);
button.text = ‘Confirm’;
button.classes.add(‘important’);
button.onClick.listen((e) => window.alert(‘Confirmed!’));

其实就是利用上面返回的数值,继续进行调用,这样和链式调用的效果并不同。这里的…一直是指代的返回来的数据。

级联调用也可以嵌套:

final addressBook = (new AddressBookBuilder()
…name = ‘jenny’
…email = ‘jenny@example.com’
…phone = (new PhoneNumberBuilder()
…number = ‘415-555-0100’
…label = ‘home’)
.build())
.build();
在方法上使用级联操作符需要非常小心, 例如下面的代码就是不合法的:

// Does not work
var sb = new StringBuffer();
sb.write(‘foo’)…write(‘bar’);
sb.write() 函数返回一个 void, 无法在 void 上使用级联操作符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值