问题标签 [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.

0 投票
2 回答
340 浏览

c# - 类型转换错误和构造函数

我有两节课

Main中的代码如下

这里第 1 行编译成功,而第 2 行显示类型转换错误。为什么会发生这种情况。new B()当和new A()被调用时究竟会发生什么?

0 投票
8 回答
3694 浏览

java - Python 缺乏静态类型如何影响大型项目的可维护性和可扩展性?

在阅读了这个内容丰富(尽管有些争论)的问题之后,我想知道您使用 Python 编写大型项目的经验。随着项目变大,事情是否变得难以管理?这种担忧是让我对 Java 依恋的一件事。因此,我对大型项目的 Java 和 Python 的可维护性和可扩展性的知情比较特别感兴趣。

0 投票
6 回答
7527 浏览

scala - Scala 类型系统与 Haskell 的缺点?

我读到 Scala 的类型系统被 Java 互操作性削弱了,因此无法执行与 Haskell 类型系统相同的一些功能。这是真的?是因为类型擦除的弱点,还是我在各方面都错了?这种差异是 Scala 没有类型类的原因吗?

0 投票
12 回答
1444 浏览

scala - 无法使用静态语言创建应用函数?

我已经读过,使用 Scala 或 Haskell 等静态类型语言无法创建或提供 Lispapply函数:

或者可能

这是事实吗?

0 投票
5 回答
828 浏览

ruby - 是什么阻止了静态类型语言拥有像 Ruby 的 method_missing 之类的东西?

我对静态类型语言没有太多经验(目前正在学习 Scala 并喜欢它!)但我注意到的一件事是,它们似乎从来没有像 Ruby 的 method_missing 或 ColdFusion 的 onMissingMethod 这样的东西。静态类型语言是否存在一些固有的限制来阻止或使其变得困难?

0 投票
5 回答
800 浏览

generics - 如果没有泛型,静态类型语言如何处理?

我很好奇哪些静态类型的语言没有泛型支持(在较小程度上,哪些语言历史上没有泛型),以及它们如何处理它。

用户只是到处投吗?是否有一些用于基本集合的特殊调味料,例如列表和字典,允许这些类型是通用的?

为什么这些语言没有泛型?是为了避免潜在的复杂性还是其他原因?

0 投票
3 回答
95 浏览

oop - 显式静态类型编程语言

我好奇。

我有兴趣知道是否存在像 C++ 和 Java 这样的语言,因为语言是:(a)显式(即非推理)静态类型,(b)面向对象。

我知道 D,但其他人在使用什么?

干杯

0 投票
6 回答
6223 浏览

clojure - Clojure 静态类型

我知道这对 Lisp 爱好者(以及其他动态语言爱好者)来说可能听起来像是对它的亵渎,但是增强 Clojure 编译器以支持静态(编译时)类型检查有多难?

撇开支持和反对静态和动态类型的论点,这可能吗(不是“这是可取的”)?

我在想,添加一个新的读取器宏来强制编译时类型(#^ 宏的增强版本)并将类型信息添加到符号表将允许编译器标记变量被滥用的位置。例如,在以下代码中,我预计会出现编译时错误(#* 是“编译时”类型的宏):

#^ 宏甚至可以与全局变量 ( *compile-time-type-checking*) 一起使用,以强制编译器进行检查。

对可行性有任何想法吗?

0 投票
3 回答
1097 浏览

clojure - Clojure 静态类型,第 2 部分

这是我之前关于 Clojure 静态类型的问题的后续。

我浏览了编译器的 Java 源代码,它在几个地方检查 的值*warn-on-reflection*,但是当我编译以下代码时,我只得到一个运行时错误:

在任何情况下,此代码不应给出编译时警告(它不会)?让编译器对以下代码发出警告有多难:

谢谢。

0 投票
2 回答
1818 浏览

scala - 关于 Scala,“无全局类型推断”是什么意思?

我读过 Scala 的类型推断不是全局的,这就是为什么人们必须在方法上放置类型注释的原因。(这会是“本地”类型推断吗?)

我只有一点点理解,原因在于它的面向对象的性质,但我无法理解。是否有关于“全局类型推断”的解释以及为什么 Scala 不能让初学者理解?