首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Dart工厂(构造函数)与静态方法;例如,为什么int.parse()不是工厂构造函数?

Dart工厂(构造函数)与静态方法;例如,为什么int.parse()不是工厂构造函数?
EN

Stack Overflow用户
提问于 2014-01-27 18:53:36
回答 1查看 4K关注 0票数 19

Dart样式指南建议使用https://www.dartlang.org/articles/style-guide/#do-use-constructors-instead-of-static-methods-to-create-instances,因为“Dart中的命名构造函数和工厂构造函数为您提供了其他语言中静态方法的所有灵活性,同时仍然允许调用站点显示为常规的构造函数调用”。

那么,是否有技术原因将int.parse()double.parse()声明为静态方法而不是工厂构造函数?

更普遍地说,在Dart中选择在静态(工厂)方法上编写工厂构造函数的指南是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 21:25:07

在谷歌搜索了一段时间之后,我确实找到了一个官方解释:链接到小组讨论

为了存档,这里引用了链接中引用的文本:

我想让它成为一个构造函数,但它不适合int值或双值值。 我认为“解析”是一个实用程序函数,而不是构造函数,这可能是因为int和double实际上没有构造函数。你不创建一个整数,你就会发现它。 另外,目前检查字符串是否为数字文字的唯一方法是调用解析并查看它是否抛出(但我对此并不完全满意!),而且我不喜欢除了编程错误之外任何东西都会抛出的构造函数。 而且你不必在它前面写“新”,这样做没有什么特别的好处。 没有单一的硬理由使它显然不是构造函数,而是一堆小的问题,使我更喜欢它作为一个静态的函数。

我的“表演目的”理论到此为止。哦,好吧。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21389202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档