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

Dart中关于类成员的约定是什么;封装和类型注释?,dart,Dart,我不熟悉Dart语言。因此,我想更多地了解程序员在使用这种语言进行开发时遵循的一些约定 我是否应该像在Java中那样封装我的类成员?每当我创建类的属性时,我应该将其私有化并提供getter/setter吗?或者有些情况下我应该把它们公开?如果是,这些情况的例子是什么 在我看来,字符串、int等类型注释可以提高代码的可读性。它们作为其他正在阅读/使用我的代码的开发人员的文档。程序员现在不应该考虑这个变量中存储的是什么类型的值。那么,在什么情况下,在声明变量时需要使用var关键字呢 德米特里 谢谢。

我不熟悉Dart语言。因此,我想更多地了解程序员在使用这种语言进行开发时遵循的一些约定

  • 我是否应该像在Java中那样封装我的类成员?每当我创建类的属性时,我应该将其私有化并提供getter/setter吗?或者有些情况下我应该把它们公开?如果是,这些情况的例子是什么

  • 在我看来,字符串、int等类型注释可以提高代码的可读性。它们作为其他正在阅读/使用我的代码的开发人员的文档。程序员现在不应该考虑这个变量中存储的是什么类型的值。那么,在什么情况下,在声明变量时需要使用var关键字呢

  • 德米特里


    谢谢。

    谢谢您查看Dart

    不需要封装类字段。Dart为您创建隐式getter和setter。如果需要实际计算该字段的某些内容,那么可以手动实现getter或setter。好处:这不会破坏API的消费者

    例如:

    班级人员{
    智力年龄;
    }
    
    稍后,您要计算年龄:

    班级人员{
    日期时间出生日期;
    int get age=>new DateTime.now().difference(birthdate).inDays~/365;
    }
    
    在这两种情况下,您都可以执行以下操作:

    打印(个人年龄);
    
    很酷!API没有变化,也没有防御性的getter和setter(只需在需要时添加它们)

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

    String doCoolStuff(int-bar){
    var clearlayabool=true;
    返回“你好,世界”;
    }
    
    请注意,返回类型和
    bar
    参数是带类型注释的,但是
    clearlyABool
    使用
    var
    ,因为我们使用
    bool
    进行初始化


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

    @seth如果您以前将值设置为“date”,它确实会更改API,现在您不能再这样做了。否?否则您也必须添加一个setter。术语是“类型注释”吗“特定于飞镖?我一直认为它们只是变量的类型。Java是我使用最多的语言。