为什么 Dart 的 Datetime.parse 不是工厂构造函数?
Why is Dart's Datetime.parse not a factory constructor?
Dart 的 Datetime class 有许多命名构造函数,但 DateTime.parse()
不是其中之一。相反,DateTime.parse()
是一个静态方法,它 returns 一个 DateTime。对我来说,它作为构造函数是有意义的(因为您正在以与 Datetime.utc()
构造函数没有太大区别的方式生成新的 DateTime 对象)。
我提出的理论是为了反映 int.parse
不是构造函数的事实,或者允许更轻松的链接(您不需要将级联运算符与静态方法一起使用)。但也许还有另一个我没有想到的原因。有谁知道为什么他们不把它变成一个命名构造函数?
对 Uri.parse 相同更改的更多解释:http://permalink.gmane.org/gmane.comp.lang.dart.general/17081
"parse" is special. The question is: do you see parsing as an
operation that does something and ends up giving you the result, or do
you see the string as data to construct a new element. If you see it
as the earlier, then "parse" should be a static function. If you see
the string as the data, then it should be a named constructor.
当然,还有一致性。
Dart 的 Datetime class 有许多命名构造函数,但 DateTime.parse()
不是其中之一。相反,DateTime.parse()
是一个静态方法,它 returns 一个 DateTime。对我来说,它作为构造函数是有意义的(因为您正在以与 Datetime.utc()
构造函数没有太大区别的方式生成新的 DateTime 对象)。
我提出的理论是为了反映 int.parse
不是构造函数的事实,或者允许更轻松的链接(您不需要将级联运算符与静态方法一起使用)。但也许还有另一个我没有想到的原因。有谁知道为什么他们不把它变成一个命名构造函数?
对 Uri.parse 相同更改的更多解释:http://permalink.gmane.org/gmane.comp.lang.dart.general/17081
"parse" is special. The question is: do you see parsing as an operation that does something and ends up giving you the result, or do you see the string as data to construct a new element. If you see it as the earlier, then "parse" should be a static function. If you see the string as the data, then it should be a named constructor.
当然,还有一致性。