級(jí)聯(lián)操作符
級(jí)聯(lián)可以對(duì)同一個(gè)對(duì)象執(zhí)行一系列的操作衅斩。除了函數(shù)調(diào)用泼舱,你也可以存取統(tǒng)一對(duì)象上的字段。這可以減少創(chuàng)建臨時(shí)變量的步驟,寫出更優(yōu)美的代碼臣嚣。
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
上面的代碼等同于:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
級(jí)聯(lián)操作也可以嵌套使用
final addressBook = (AddressBookBuilder()
..name = 'jenny'
..email = 'jenny@example.com'
..phone = (PhoneNumberBuilder()
..number = '415-555-0100'
..label = 'home')
.build())
.build();
如果一個(gè)函數(shù)能返回一個(gè)明確的對(duì)象,在函數(shù)內(nèi)使用級(jí)聯(lián)操作符要小心剥哑。例如:
var sb = StringBuffer();
sb.write('foo')
..write('bar');
sb.write()方法返回一個(gè)void硅则,不能對(duì)void對(duì)象使用級(jí)聯(lián)。