16得票2回答
Lisp如何同时具备动态性和编译性?

首先需要澄清一点:我已经阅读了以下回答: Lisp 是如何动态编译的? 但是我不太理解它的答案。 在像 Python 这样的语言中,表达式:x = a + b 由于“编译器”无法知道a和b的类型(因为类型仅在运行时已知),因此无法真正编译,这使得像Python这样的语言在没有类型声明的情...

15得票4回答
动态类型有哪些好处?

你有多经常利用动态类型特性进行编程,这在静态类型语言中是不现实的? 我感兴趣的是,这些特性在现实世界的代码中(而非演示代码)有多少被使用?

13得票2回答
为什么Apple在类构造函数中使用instancetype时不一致?

查看NSArray.h中的创建方法块。 这些返回id而不是instancetype的方法是否有合理的原因? Apple甚至费心地添加了内联注释,让我们知道在这种情况下id返回一个NSArray。@interface NSArray (NSArrayCreation) + (instancet...

13得票2回答
这是使用unsafeCoerce的安全用法吗?

我现在有一个情况,需要使用极其危险的函数unsafeCoerce。幸运的是,它不是用于任何重要的事情,但我想知道这是否是对该函数安全的使用,或者其他人是否了解解决这个特定问题的另一种方式。 我有以下类似的代码: data Token b = Token !Integer identica...

11得票3回答
不知道类型时如何使用 instanceof

我的Java类代表数据库中的实体,并且我发现覆盖我的类的equals方法以通过ID进行比较是很实用的。因此,例如在我的Transaction类中,我有以下代码:@Override public boolean equals(Object other){ if (other == nul...

11得票7回答
如何处理Python的静态类型?

我来自Java的世界,想知道除了编译代码时错过错误之外,Python中的动态类型有什么优点? 你喜欢Python的类型定义吗?你有大型项目中类型定义带来帮助的例子吗?它不会有一些容易出错的问题吗?

11得票3回答
Haskell - 从具体类型实例获取TypeRep

我想编写一个具有以下类型签名的函数: getTypeRep :: Typeable a => t a -> TypeRep 在此处,TypeRep将是类型a的表示,而不是t a的表示。也就是说,在任何调用getTypeRep的地方,编译器都应该自动返回正确的类型表示,这些表示...

10得票4回答
面向对象编程和动态类型(不是静态 vs 动态)

在动态类型环境和静态类型环境(例如Ruby vs C#)中,哪些面向对象编程原则不适用或适用方式有所不同?这不是要求进行静态与动态的辩论,而是想看看是否存在被接受的原则适用于其中一方而非另一方,或者应用方式不同。例如,“更喜欢组合而非继承”这样的短语在静态类型的面向对象编程文献中是众所周知的。...

10得票2回答
Prolog是一种无类型语言吗?Prolog和动态类型语言有什么区别?

如果Prolog有明确的字符串、数字、原子、列表和复合结构的区别,它怎么会被称为无类型语言呢?它与像Lisp这样的动态类型语言有何不同? Prolog与“动态类型语言”的定义的哪个部分冲突了?Lisp与“无类型语言”的定义的哪个部分冲突了? 感谢任何见解。 更新: 我已经知道动态、静态...

10得票6回答
动态类型语言中Map/Lists的变量命名规范

我开始学习Groovy语言,它是一种动态类型语言(同时也支持可选的静态类型)。它还原生支持列表、映射和范围,所以我经常使用列表和映射,特别是列表中嵌套列表、列表中嵌套映射、映射中嵌套列表等结构。 在静态语言中(特别是泛型语言),你总是知道自己的类型。我相对较新于动态语言,很难跟踪变量应该是什...