gpt4 book ai didi

dart - Dart 中关于类成员的封装和类型注释的约定是什么?

转载 作者:行者123 更新时间:2023-12-04 14:11:51 24 4
gpt4 key购买 nike

我是 Dart 语言的新手。所以我想更多地了解程序员在使用这种语言进行开发时遵循的一些约定。

  • 我是否应该总是像我一样封装我的类成员,例如在 Java 中?每当我创建类的属性时,我应该将其设为私有(private)并提供 getter/setter 吗?或者在某些情况下我应该将它们公开?如果是这样,这些情况的例子是什么?
  • 在我看来,String、int 等类型注解增加了代码的可读性。它们用作阅读/使用我的代码的其他开发人员的文档。程序员现在不应该考虑存储在此变量中的类型的值。再说一遍,在声明变量时需要使用 var 关键字的情况是什么?

  • 德米特里。

    谢谢你。

    最佳答案

    感谢您查看 Dart !

    无需封装类字段。 Dart 为你创建了隐式的 getter 和 setter。如果您需要实际计算该字段的某些内容,则可以手动实现 getter 或 setter。奖励:这不会破坏 API 的使用者。

    例子:

    class Person {
    int age;
    }

    稍后,您要计算年龄:

    class Person {
    DateTime birthdate;

    int get age => new DateTime.now().difference(birthdate).inDays ~/ 365;
    }

    在这两种情况下,您都可以这样做:

    print(person.age);

    很酷! API 没有变化,也没有防御性的 getter 和 setter(只需在需要时添加它们)。

    您应该为代码的“表面积”使用类型注释。例如,对方法和函数签名使用类型注释。对于变量类型非常明显的情况,您应该考虑使用 var ,因为它更简洁易读。

    例如:

    String doCoolStuff(int bar) {
    var clearlyABool = true;
    return 'Hello world';
    }

    注意返回类型和 bar参数是类型注释的,但 clearlyABool使用 var因为我们用 bool 初始化.

    随意在任何地方使用类型注释,这是程序员的选择。轶事:dart2js 源代码几乎到处都使用类型注释。

    关于dart - Dart 中关于类成员的封装和类型注释的约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29322579/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com