Dart中能否一行代码完成类属性赋值并返回对应值?
Dart实现设置类属性同时返回值的方案
首先明确:Dart**没有类似Python海象运算符(:=)**的专门语法,但完全可以用几种简单方式实现你要的效果——设置类属性的同时返回该属性值。
方法1:最直观的分步写法
直接在方法里先完成赋值,再返回属性,可读性拉满:
class Foo { late String foo; Foo(); String setFoo() { foo = 'foo'; return foo; } } void main() { var f = Foo(); var x = f.setFoo(); print(x); // 输出 'foo' }
方法2:单行箭头函数简化写法
如果想写成单行,可以利用Dart的逗号表达式(逗号表达式会返回最后一项的值):
class Foo { late String foo; Foo(); String setFoo() => (foo = 'foo', foo); } void main() { var f = Foo(); var x = f.setFoo(); print(x); // 输出 'foo' }
方法3:级联运算符场景(可选)
如果你的代码有链式调用需求,可以让setter方法返回实例本身,再通过级联获取属性:
class Foo { late String foo; Foo(); Foo setFoo(String value) { foo = value; return this; } } void main() { var f = Foo(); var x = f.setFoo('foo').foo; print(x); // 输出 'foo' }
内容的提问来源于stack exchange,提问作者MetaStack
相关产品推荐
相关产品推荐

