在 dart/Flutter 中,所有基本数据类型名称均以小写形式定义
那为什么字符串数据类型变成了String代替string ?
来自@Ahmed I. Elsayed提到的github问题,以下是@LRN提供的相关答案参考
真正的问题是,如果你想要一致性,那么为什么 int 不是
国际。 Dart 通常将类型大写,所以这里的例外不是
字符串,它是 int、double 和 bool(还有 void,但那不是
最初是一个真实类型)。
所以如果你想要一致性,我们应该将 int 设为 Int。或者也许它
甚至应该是 Integer,因为我们也不鼓励缩写。
在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 功能是明确的,因为
他们不希望人们用无数的私人方言写作
其他人无法阅读)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)