问题标签 [typechecking]

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 投票
3 回答
1340 浏览

c++ - 如果变量是 C++ 中的类、结构或基本类型,有没有办法编译时断言?

我正在尝试实现一个模板类,它能够告诉我变量是类、结构还是基本类型。

到目前为止,我已经有了这个:

和用法:

问题是现在我需要在可以与此代码一起使用的每个类中编写一个空白 void 函数。

有谁知道这个问题的解决方案?

0 投票
2 回答
1131 浏览

stack - 有人可以解释这几行 MSIL 吗?

有人可以解释这几行 MSIL 吗?为什么它将评估堆栈中的值移到局部变量中,只是立即将其移回并返回?

以下 MSIL 代码加载单个参数(字符串),调用返回 bool 的方法,然后返回该 bool 值。我不明白为什么它调用 stloc.0 将方法的返回值存储在局部变量中,然后执行显式无条件控制转移到下一个标记行(似乎没有必要),只是将值移回返回之前的评估堆栈。

我对它为什么这样做的最佳猜测是执行某种类型检查以确保评估堆栈上的值在返回之前实际上是一个布尔值。但是我对明确跳转到下一行一无所知;我的意思是,它不会去那里吗?该方法的 C# 源代码只有一行,它返回该方法的结果。

0 投票
9 回答
80605 浏览

python - 检查输入是字符串列表/元组还是单个字符串

我有一种方法,我希望能够接受单个字符串(路径,但不一定存在于运行代码的机器上)或字符串列表/元组。

鉴于字符串充当字符列表,我如何判断该方法收到了哪种类型?

我希望能够接受单个条目的标准或 unicode 字符串,以及多个列表或元组,所以 isinstance 似乎不是答案,除非我错过了一个聪明的技巧(比如采取共同祖先类的优势?)。

Python版本是2.5

0 投票
13 回答
3604 浏览

types - 类型检查和类型系统的限制是什么?

类型系统经常被批评为限制性的,即限制编程语言并禁止程序员编写有趣的程序。

克里斯史密斯声称

我们保证程序是正确的(在此类型检查器检查的属性中),但反过来我们必须拒绝一些有趣的程序。

此外,有一个铁定的数学证明,任何感兴趣的类型检查器总是保守的。构建一个不拒绝任何正确程序的类型检查器不仅很困难;不可能。

有人可以概述一下这可能是什么有趣的程序吗?哪里证明类型检查器必须保守?

更笼统地说:类型检查和类型系统的限制是什么?

0 投票
6 回答
443 浏览

c# - 比较类型对象的表达式

好的,这可能很简单,但是,我有下面的“检查” (not at the same time),第一个 总是评估为 TRUE,而第二个 似乎可以工作。这实际上发生在行值为数字或 bool 的每个地方(Date seems fine...)

如果我在Debug中浏览代码,它会显示162434的值,row["PersonID"]与. 这只是我错过的关于编程的基本和初学者真理吗? tbxPersonID.EditValuehodge-podge-self-education

看来,如果我所有有问题的东西都string放在第一位,我会没事的,我只想知道我是否正确,以及是否有关于Types我需要这样做的一般规则?

不工作

作品

0 投票
1 回答
397 浏览

ocaml - OCaml:为什么这段代码会产生类型检查错误?

这是我的代码:

将其输入顶层会产生以下结果:

我已经尝试了很长时间,但我无法弄清楚为什么这会产生错误。它是否认为这l是一个 int 列表?

解决方案:(从下面。谢谢!)

0 投票
4 回答
19863 浏览

object - OCaml:类型检查对象

如果我有一个对象,我如何确定它的类型?(是否有与 Javainstanceof运算符等效的 OCaml?)

0 投票
9 回答
200829 浏览

java - Java:Instanceof 和泛型

在查看值索引的通用数据结构之前,我想看看它是否甚至是this已参数化类型的实例。

但是当我这样做时 Eclipse 会抱怨:

这是错误消息:

无法对类型参数 E 执行 instanceof 检查。改用它的擦除对象,因为泛型类型信息将在运行时被擦除

更好的方法是什么?

0 投票
3 回答
100 浏览

python - 有没有办法检查参数是否包含类或类实例?

我希望包装器 my_function 能够接收类或类实例,而不是编写两个不同的函数:

问题是我事先不知道我将收到哪种类型的类或类实例。所以我不能,例如,使用像 isinstance 这样的函数......

如何以通用方式键入检查参数是否包含类或类实例?

任何的想法?

0 投票
6 回答
1169 浏览

java - 在这个例子中是否可以避免使用类型检查?

抱歉标题不好,想不出一个简洁的方式来表达这个..

我正在考虑拥有一个对象列表,这些对象都将具有特定的接口。然后这些对象中的每一个都可以实现进一步的接口,但不能保证哪个对象将实现哪个。但是,在单个循环中,我希望能够调用它们进一步子类型的方法。

即,3个接口:

然后将其存储为

因此,添加到列表中的实例也可能是IEggLayeror类型IMammal,它们具有完全不相关的方法。

我最初的直觉是那样做

但我一直被告知类型检查是代码真正应该重构的标志。

由于单个对象可能同时执行这两种操作[例如鸭嘴兽],这意味着单个对象doFunction()不适合在这里,在这种情况下是否可以避免使用类型检查,或者这是类型检查的一个实例归类为可接受?
是否有可能满足这一点的设计模式?

我也为这个人为的例子道歉......
[请忽略任何语法错误 - 它只是为了类似于 Java 的伪代码]

我在 EggLayer 使用中添加了左值,以表明有时返回类型很重要