【问题标题】:Dart datatype naming convention.. Why String instead of stringDart 数据类型命名约定.. 为什么使用字符串而不是字符串
【发布时间】:2020-06-25 17:38:44
【问题描述】:

在 dart/Flutter 中,所有基本数据类型名称都以小写形式定义

  • int
  • 布尔
  • 双倍等等。

那为什么 string 数据类型变成 String 而不是 string 呢?

【问题讨论】:

  • 这个here有问题

标签: flutter dart


【解决方案1】:

来自@Ahmed I. Elsayed提到的github问题,以下是@LRN提供的相关答案 Reference

如果您要保持一致性,真正的问题是为什么 int 不是 诠释。 Dart 一般将类型大写,所以这里的例外不是 字符串,它是 int、double 和 bool(和 void,但那不是 原来是一个真正的类型)。

因此,如果您想要一致性,我们应该将 int 设为 Int。或者也许它 甚至应该是整数,因为我们也不鼓励缩写。

在 Java 中,int 是小写的,而 Integer 是大写的,因为 前者是原始类型,后者是对象类型。飞镖确实 没有那个区别,我们的 int 是一个对象类型,所以我们没有 实际上有任何基于一致性的理由来缩短 int 和 小写。

或者也许有一个原因:int、double 和 bool 实例是 自动规范化。你不能有两个 int 实例 相同的值,但它们并不相同。这是唯一的属性 Dart 是从 Java/C#/JavaScript 原始类型中获取的,它 不适用于字符串(就像它在 Java 和 C# 中也一样)。

Dart 出现这些异常(int、double 和 bool)的真正原因是 因为可用性、用户期望和 一致性。 Dart 被设计成一种实用语言。它重视 一致性,但不以任何代价。熟悉度/用户期望 目标通常受到 Java、JavaScript 和 C# 的影响,它是 被认为具有更好的可用性以使这些类型简短,可识别 并且易于编写。

让 String 成为字符串并不是一个看似值得的权衡。它 如果我们使用字符串,可能会工作得很好 相反,但我们没有。我们现在不会改变它。

(如果我们得到通用类型别名,您可能可以定义自己的 typedef 字符串 = 字符串;。我恳求你不要这样做,因为它不会 提高代码的可读性。从历史上看,Java 的原因 没有类似 C 的 #define 功能是明确的,因为 他们不希望人们用无数的私人方言写作 其他人无法阅读)。

【讨论】:

    【解决方案2】:

    它实际上旨在为熟悉 Java 的程序员简化约定。

    当时,Dart(仍然)非常新鲜和新颖,因此他们希望保持与 Java 等已知和成熟语言相似的语法。它将促进人们的迁移和采用。

    您可以在official docs here找到更多实质性信息

    【讨论】:

    • 我来自 c# 背景 .. 所以我希望小写 .. (:
    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多