问题标签 [coercion]

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 回答
1383 浏览

c++ - 比特流到浮点类型强制

我无法让以下代码正常工作。使用在线 IEEE-754 转换器,我(手动)写出 testData.txt 文件,该文件使用表示浮点数 75.5 的位字符串读取;实际的 cout.write 确实表明位字符串也符合我的预期。但是,当我尝试使用联合将 char* 强制转换为浮点数时(正如我所见,这是完成此转换的典型方法),结果浮点数不是我期望的数字。

运行这个的返回结果是:

有什么我没有做的基本事情可以使这项工作正常工作吗?

0 投票
3 回答
817 浏览

ruby - 将 nil 强制转换为数字

这里发生了什么?

如何通过将 nil 转换为数字来安全地执行算术运算?

0 投票
3 回答
837 浏览

c# - 是否可以将 xml 中的字符串值强制为 bool?

假设我有这样的 xml:

C# 类如下所示:

是否可以将 Active 属性更改为类型bool并让 XmlSerializer 强制“是”“否”为布尔值?

编辑:收到 Xml,我无法更改它。所以,事实上,我只对反序列化感兴趣。

0 投票
1 回答
310 浏览

perl - How can I determine if an object or reference has a valid string coercion?

I've run into a situation (while logging various data changes) where I need to determine if a reference has a valid string coercion (e.g. can properly be printed into a log or stored in a database). There isn't anything in Scalar::Util to do this, so I have cobbled together something using other methods in that library:

However, I suspect there might be a better way of determining this by inspecting the guts of the variable in some way. How can this be done better?

0 投票
3 回答
1607 浏览

f# - F# 返回类型强制

在 F# 中,我有一个返回 System.Linq.Expression 实例的函数:

如果我省略了返回值的类型强制,F# 会将函数的返回类型推断为 ConstantExpression。我的第一个想法是将返回类型显式标记为:#Expression,但这不起作用。是否有一种更优雅的方式来执行此操作,而不涉及手动将返回类型转换为最通用的类​​型?

谢谢。

编辑:感谢大家的回答。我将使用显式返回类型 + upcast 场景。

0 投票
2 回答
10821 浏览

ruby - 在 Ruby 中, coerce() 是如何工作的?

据说当我们有课Point并且知道如何执行point * 3时,如下所示:

输出:

但是之后,

不明白:

Point不能强制转换为Fixnum( TypeError)

所以我们需要进一步定义一个实例方法coerce

输出:

所以说3 * point是一样的3.*(point)。也就是说,实例方法*接受一个参数point并在对象上调用3

现在,由于这个方法*不知道如何乘以一个点,所以

将被调用,并取回一个数组:

然后*再次应用到它上面,是这样吗?

现在,这被理解了,我们现在有了一个新Point对象,由类的实例方法*执行Point

问题是:

  1. 谁调用point.coerce(3)?是自动使用Ruby,还是通过捕获异常在*方法内部的一些代码?Fixnum或者是通过case声明当它不知道其中一种已知类型时,然后调用coerce

  2. 是否coerce总是需要返回一个包含 2 个元素的数组?可以没有数组吗?还是可以是 3 个元素的数组?

  3. 并且是规则,*然后将在元素 0 上调用原始运算符(或方法),并使用元素 1 的参数?(元素 0 和元素 1 是由 . 返回的数组中的两个元素coerce。)谁做的?它是由 Ruby 完成的还是由代码完成的Fixnum?如果它是通过代码完成的Fixnum,那么这是每个人在进行强制时都遵循的“约定”?

    那么它可能是*Fixnum这样的事情的代码:

    /li>
  4. Fixnum那么在实例方法中添加东西真的很难coerce吗?它已经有很多代码,我们不能只添加几行来增强它(但我们会想要吗?)

  5. coerce类中的Point非常通用,它可以与*or一起使用,+因为它们是可传递的。如果它不具有传递性,例如我们将 Point 减去 Fixnum 定义为:

    /li>
0 投票
2 回答
360 浏览

ruby - 在 Ruby 中, coerce() 方法能否知道需要帮助强制转换的运算符是什么?

在 Ruby 中,似乎可以通过以下方式完成很多 coerce() 帮助

也就是说,当

需要,Fixnum3不知道如何处理添加一个 Rational,所以它通过调用rational.coerce(3) 向 Rational#coerce 寻求帮助,这个 coerce 实例方法将告诉调用者:

那么如果大多数运营商都可以使用这种方法,但在 (a - b) != (b - a) 的情况下却不能使用呢?coerce() 可以知道它是哪个运算符,并且只处理那些特殊情况,同时只使用简单的 [self, something] 来处理 (a op b) == (b op a) 的所有其他情况吗?(op 是运算符)。

0 投票
2 回答
2112 浏览

c++ - 关于 C++ 中类型强制的一个简单问题

给定一个函数原型和一个类型定义:

以下情况是否按标准定义:

我是否可以通过函数原型可预测地获得类型强制?

0 投票
1 回答
3000 浏览

c# - 依赖属性强制绑定问题

我同时安装了 VS2008 和 VS2010,我看到一个非常奇怪的行为

在 VS2008 中,我有一个简单的 WPF 应用程序:

当我在文本框中输入随机字符串并点击选项卡时,我希望 textbox.Text 被重置为“强制值”。如果我调试我看到应用程序在强制功能中中断,但 UI 没有更新。

有趣的是,同样的代码在 VS2010 中也可以使用,UI 会使用强制值进行更新。有人知道发生了什么吗?

这是一个WPF错误吗?还是我错过了什么?

0 投票
1 回答
601 浏览

c# - 在不知道盒子里面有什么的情况下拆箱 uint/int

我有一个object o被称为盒装intuint

我不知道盒子里有什么,我只关心里面有 4 个字节我想强制转换为intor uintunchecked当我有值(而不是框)时,这在上下文中可以正常工作:

注意:默认情况下,C# 中的所有内容都是未检查的,未检查的上下文仅在此处是必需的,因为我们正在处理文字,编译器想知道我们是否真的想在脚下开枪。

现在的问题是我不知道盒子里面有什么(除了它是 4 个字节),但是当我尝试解开错误的类型时,运行时会这样做,我得到一个InvalidCastException. 我知道这是合理的运行时行为,但在这种情况下,我知道我在做什么并且想要一个“未选中的取消框”。存在这样的东西吗?

我知道我可以catch重试,所以这不算作答案。