You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:30:44