大数跨境
0
0

Dart 的 Get Set:从基础定义到业务实战,一文读懂!

Dart 的 Get Set:从基础定义到业务实战,一文读懂! 码上全栈创享家
2025-11-12
0
导读:嘿,编程小伙伴!在Dart编程里,`get`和`set`宛如神奇钥匙,开启数据访问与封装大门。它们让我们能优雅安全地访问、修改类数据。不管是新手夯实基础,还是老手追求高效,掌握`get`与`set`,

Dart 的 Get Set:从基础定义到业务实战,一文读懂

引言

嘿,编程小伙伴们!在 Dart 的编程天地里,get 和 set 就像两把神奇的钥匙,为我们打开了数据访问与封装的新大门。get 和 set 允许我们以更优雅、更安全的方式来访问和修改类中的数据。无论是编程新手渴望构建基础扎实的代码,还是经验丰富的开发者追求更简洁高效的实现,掌握 get 和 set 都是提升编程能力的关键一步。接下来,让我们一同探索 Dart 中 get 和 set 的奥秘。

定义、使用 get set

定义

在 Dart 中,通过在类里定义 get 和 set 方法,可以控制对类中成员变量的访问。

class People {
  String? _name;

  People();

  set name(String value) {
    _name = value;
  }

  String get name {
    return 'people is $_name';
  }
}

这里,People 类有一个私有的成员变量 _name 。set name 方法用于设置 _name 的值,get name 方法用于获取 _name 的值,并在返回时添加了前缀 people is 。这种方式隐藏了成员变量的直接访问,提供了数据封装。

使用

创建类的实例并使用 get 和 set 方法。

var p = People();
p.name = 'ducafecat';
print(p.name);

首先,通过 p.name = 'ducafecat'; 使用 set 方法设置 name 的值为 ducafecat 。然后,通过 print(p.name); 使用 get 方法获取并打印 name 的值,输出为 people is ducafecat 。

简化 get set

在 Dart 中,还可以使用箭头函数来简化 get 和 set 方法的定义。

class People {
  String? _name;

  People();

  set name(String value) => _name = value;

  String get name => 'people is $_name';
}

这样的简化语法使代码更加简洁明了,功能与之前的定义是一样的。set name 使用箭头函数直接将传入的值赋给 _name ,get name 使用箭头函数返回带有特定前缀的 _name 值。

业务场景 - 购物车

在实际业务场景中,get 方法常用于计算和返回一些业务相关的值。

/// 商品数量
int get lineItemsCount => lineItems.length;

/// 运费
double get shipping => 0;

/// 折扣
double get discount =>
    lineCoupons.fold<double>(0, (double previousValue, CouponsModel element) {
      return previousValue + (double.parse(element.amount?? "0"));
    });

/// 商品合计价格
double get totalItemsPrice =>
    lineItems.fold<double>(0, (double previousValue, LineItem element) {
      return previousValue + double.parse(element.total?? "0");
    });

这里定义了几个 get 方法来获取购物车相关的信息。lineItemsCount 返回购物车中商品的数量,shipping 返回运费(这里固定为 0 ),discount 通过对优惠券列表进行折叠操作计算总折扣,totalItemsPrice 通过对商品列表进行折叠操作计算商品的合计价格。在以前,我们可能会定义 getXXX() 这样的方法来实现同样的功能,而现在使用 get 方法使代码更加简洁直观,并且同样适用于赋值操作(虽然这里主要展示的是获取值的操作)。

实战总结

在实际编程中,get 和 set 方法极大地增强了代码的可读性和可维护性。通过封装数据的访问和修改逻辑,我们可以更好地控制数据的一致性和安全性。在业务场景如购物车功能的实现中,get 方法简洁地提供了关键业务数据的计算和获取方式。同时,简化的 get 和 set 语法让代码更加紧凑,提高了编程效率。

结论

掌握 Dart 中的 get 和 set 是提升编程技能的重要一环。无论是简单的数据访问控制,还是复杂的业务逻辑计算,get 和 set 都能发挥重要作用。希望通过本文的介绍,大家对 get 和 set 在 Dart 中的应用有了更深入的理解,在今后的编程实践中能够灵活运用,编写出更加优雅、高效的代码。

扫码关注我们!





【声明】内容源于网络
0
0
码上全栈创享家
计算机专业的技术百宝箱,聚焦项目实战,分享前端、后端与小程序开发干货,助力编程小白进阶,为技术爱好者提供前沿技术洞察与实用技巧。
内容 97
粉丝 0
码上全栈创享家 计算机专业的技术百宝箱,聚焦项目实战,分享前端、后端与小程序开发干货,助力编程小白进阶,为技术爱好者提供前沿技术洞察与实用技巧。
总阅读2
粉丝0
内容97