问题标签 [static-typing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 我们可以用 Java 中的泛型做些什么来让它们看起来更好:
我有这种方法可以使用列表元素的属性之一将 a 转换List
为 a :Map
简而言之,它看起来像这样:
哎呀!..
我非常喜欢泛型,我在它们之前使用 java,我不想回到铸造一切时代,但是当泛型包含作为元素的泛型元素时,事情变得一团糟。
我知道在 Java1.7 中我们将能够使用“菱形”运算符,但应该有另一种方式。
这是在非通用版本中的样子:
大约,我没有尝试编译它。
其他语言如何处理这个?例如 C#?,Scala?我非常喜欢 SML 或 Haskell 处理的方式,但我认为太多的魔法可能会伤害(但这当然是主观的)
有解决方法吗?
clojure - clojure 序列类型
什么是正确的序列类型?我有这个代码:
但它似乎没有正确执行类型要求,因为我可以编写(new MethodInfo 1 2)
.
python - Python 类型检查
可能重复:
Python 中用于静态类型检查的工具
在大多数情况下,我喜欢这样一个事实,即您可以在 Python 中选择任何类型并将其放在您喜欢的位置,然后让 Duck 类型接管。但是如何阻止该死的事情通过编译时间。有没有办法在编译时需要时强制执行某种健全性检查,而无需求助于 Unit Tesing。
java - 通用堆栈方法
我正在使用以下方法创建此堆栈类,如图所示。
//接口ISortableStack是[这里][1](注释描述了所需的方法签名)。
[1]:http://stackoverflow.com/questions/7130901/java-stack-implementation
现在,当我尝试创建主体类时,如下所示:
它在 ISortableStack 处引发错误:无法引用非静态类型。并且无法启动 ISORTABLESTACK
我想使用界面创建菜单驱动程序。我不擅长 Java GENERICS 和集合,并且在提交作业时已经很晚了。任何帮助/方向将不胜感激。
python - RPython 中的静态类型是什么?
人们经常说RPython(Python 的一个子集)是静态类型的。(例如在维基百科上。)
最初,我想知道他们如何将其添加到 Python 中,并认为他们可能已经添加了添加语句的要求,例如assert isinstance(arg1, ...)
在每个函数的开头(但我真的不敢相信)。
然后我查看了一些 RPython 代码,它看起来根本不是静态类型的。在许多情况下,编译器可能可以证明函数参数只能是某些类型,但绝对不是在所有情况下。
例如,这是 RPython 的实现string.split
:
在有关 RPython 的 PyPy 文档中,它说:“变量应该包含最多一种类型的值”。
那么,函数参数也算作变量吗?或者在什么意义上 RPython 是静态类型的?或者这实际上是错误的?
java - Java 风格的 Groovy 和 Java 一样快吗?
如果我理解正确,Groovy 是动态类型的,但由于它几乎是 Java 的超集,因此可以选择提供静态类型信息。如果编写的东西只有少数部分对性能至关重要,同时避免使用多种语言的摩擦,这可能很有用。只能为性能关键部分提供类型注释。
在使用类似 Java 的子集并提供静态类型注释的函数/类中使用 Groovy 而不是 Java 的性能损失是什么?
scala - 为什么 Web 开发框架倾向于围绕语言的静态特性工作?
当我开始使用 Lift 时,我有点惊讶它使用反射的程度(或看起来如此),这在静态类型的函数式语言中有点出乎意料。我对 JSP 的体验与此类似。
我对网络开发很陌生,所以我真的不知道这些工具是如何工作的,但我想知道,
Web 开发的哪些方面鼓励使用反射?
是否有任何工具(在静态类型语言中)以不使用反射的方式处理(1)引用模板页面中的代码(2)对象关系映射?
haskell - 是否有用于更新嵌套数据结构的 Haskell 习语?
假设我有以下数据模型,用于跟踪棒球运动员、球队和教练的统计数据:
现在假设通常是牛排狂热者的经理想要吃更多的牛排——所以我们需要能够增加经理饮食中的牛排含量。以下是此功能的两种可能实现:
1)这使用了大量的模式匹配,我必须让所有构造函数的所有参数排序正确......两次。它似乎不能很好地扩展或非常易于维护/可读。
2) 这使用了 Haskell 记录语法提供的所有访问器,但我认为它也丑陋且重复,并且难以维护和阅读。
我的问题是,其中一个比另一个更好,还是在 Haskell 社区中更受欢迎?有没有更好的方法来做到这一点(在保持上下文的同时修改数据结构深处的值)?我不担心效率,只担心代码优雅/通用性/可维护性。
我注意到在 Clojure 中存在这个问题(或类似问题?): update-in
- 所以我认为我试图update-in
在函数式编程和 Haskell 和静态类型的上下文中理解。
ocaml - OCaml:查找特定类型的值
我有一些值的列表,我需要找出首先是哪种值:
有没有办法在不触及find_first中所有类型的MyType的情况下这样做- 是否可以比较两个值的类型?谢谢你。
types - 有没有静态类型的函数式语言?
我来自静态类型背景并研究函数式编程,但我对动态类型并不完全兴奋。我很好奇那里有什么样的选择。
一个开始的答案:ActionScript 3 是静态类型的,并提供了一些功能范例,尽管 AS3 程序不经常使用它们。