为什么有些 Dart built-in 类型以大写字母(List、Map、String)开头,而其他类型以小写字母(number、int、double、bool)开头?
Why some Dart built-in types start with capital letter(List, Map, String) and others with lower letter(number, int, double, bool)?
它是 Java 血统还是 collection 相关?
有没有一种模式以及 dynamic
类型如何适应它?
历史上 Java 和 C# 等语言将类型分为 2 个主要类别:
- 原始类型(
int
、char
、bool
、long
、double
等)
- 用户自定义类型(
List
、Map
、Future
、Animal
、Car
等)
为了清楚地设置差异,惯例是遵循 CamelCase 即以 user-defined types
的大写字符开头并遵循 pascalCase 对于 primitive ones
dart
,就像许多其他功能一样,采用这两种语言的约定。
注意: String
类型长期以来一直是一种特殊情况。 C# 有一个名为 string
的类型和一个名为 String
的别名类型。 Java 但是采用 C++ 哲学,并不将 String
视为原始类型。因此使用 CamelCase。对于字符串 dart
已遵循 java 路径。
PS This GitHub Issue 详细讨论了 String
问题。
Dart 选择此命名是因为来自 Java 的人们熟悉。这就是为什么 int
、double
、void
和 bool
是小写的,即使它们在 Dart 中不是“原始”类型(即使 bool
是比 Java boolean
类型短。)
num
class 不存在于 Java
中,但它遵循 int
和 double
类型以保持一致性。
dynamic
类型可能只是为了方便而小写,因为它实际上是一个非 class 类型。
它是 Java 血统还是 collection 相关?
有没有一种模式以及 dynamic
类型如何适应它?
历史上 Java 和 C# 等语言将类型分为 2 个主要类别:
- 原始类型(
int
、char
、bool
、long
、double
等) - 用户自定义类型(
List
、Map
、Future
、Animal
、Car
等)
为了清楚地设置差异,惯例是遵循 CamelCase 即以 user-defined types
的大写字符开头并遵循 pascalCase 对于 primitive ones
dart
,就像许多其他功能一样,采用这两种语言的约定。
注意: String
类型长期以来一直是一种特殊情况。 C# 有一个名为 string
的类型和一个名为 String
的别名类型。 Java 但是采用 C++ 哲学,并不将 String
视为原始类型。因此使用 CamelCase。对于字符串 dart
已遵循 java 路径。
PS This GitHub Issue 详细讨论了 String
问题。
Dart 选择此命名是因为来自 Java 的人们熟悉。这就是为什么 int
、double
、void
和 bool
是小写的,即使它们在 Dart 中不是“原始”类型(即使 bool
是比 Java boolean
类型短。)
num
class 不存在于 Java
中,但它遵循 int
和 double
类型以保持一致性。
dynamic
类型可能只是为了方便而小写,因为它实际上是一个非 class 类型。