问题标签 [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.
c++ - 比特流到浮点类型强制
我无法让以下代码正常工作。使用在线 IEEE-754 转换器,我(手动)写出 testData.txt 文件,该文件使用表示浮点数 75.5 的位字符串读取;实际的 cout.write 确实表明位字符串也符合我的预期。但是,当我尝试使用联合将 char* 强制转换为浮点数时(正如我所见,这是完成此转换的典型方法),结果浮点数不是我期望的数字。
运行这个的返回结果是:
有什么我没有做的基本事情可以使这项工作正常工作吗?
ruby - 将 nil 强制转换为数字
这里发生了什么?
如何通过将 nil 转换为数字来安全地执行算术运算?
c# - 是否可以将 xml 中的字符串值强制为 bool?
假设我有这样的 xml:
C# 类如下所示:
是否可以将 Active 属性更改为类型bool
并让 XmlSerializer 强制“是”“否”为布尔值?
编辑:收到 Xml,我无法更改它。所以,事实上,我只对反序列化感兴趣。
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?
f# - F# 返回类型强制
在 F# 中,我有一个返回 System.Linq.Expression 实例的函数:
如果我省略了返回值的类型强制,F# 会将函数的返回类型推断为 ConstantExpression。我的第一个想法是将返回类型显式标记为:#Expression,但这不起作用。是否有一种更优雅的方式来执行此操作,而不涉及手动将返回类型转换为最通用的类型?
谢谢。
编辑:感谢大家的回答。我将使用显式返回类型 + upcast 场景。
ruby - 在 Ruby 中, coerce() 是如何工作的?
据说当我们有课Point
并且知道如何执行point * 3
时,如下所示:
输出:
但是之后,
不明白:
Point
不能强制转换为Fixnum
(TypeError
)
所以我们需要进一步定义一个实例方法coerce
:
输出:
所以说3 * point
是一样的3.*(point)
。也就是说,实例方法*
接受一个参数point
并在对象上调用3
。
现在,由于这个方法*
不知道如何乘以一个点,所以
将被调用,并取回一个数组:
然后*
再次应用到它上面,是这样吗?
现在,这被理解了,我们现在有了一个新Point
对象,由类的实例方法*
执行Point
。
问题是:
谁调用
point.coerce(3)
?是自动使用Ruby,还是通过捕获异常在*
方法内部的一些代码?Fixnum
或者是通过case
声明当它不知道其中一种已知类型时,然后调用coerce
?是否
coerce
总是需要返回一个包含 2 个元素的数组?可以没有数组吗?还是可以是 3 个元素的数组?并且是规则,
*
然后将在元素 0 上调用原始运算符(或方法),并使用元素 1 的参数?(元素 0 和元素 1 是由 . 返回的数组中的两个元素coerce
。)谁做的?它是由 Ruby 完成的还是由代码完成的Fixnum
?如果它是通过代码完成的Fixnum
,那么这是每个人在进行强制时都遵循的“约定”?那么它可能是
/li>*
做Fixnum
这样的事情的代码:Fixnum
那么在实例方法中添加东西真的很难coerce
吗?它已经有很多代码,我们不能只添加几行来增强它(但我们会想要吗?)
/li>coerce
类中的Point
非常通用,它可以与*
or一起使用,+
因为它们是可传递的。如果它不具有传递性,例如我们将 Point 减去 Fixnum 定义为:
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 是运算符)。
c++ - 关于 C++ 中类型强制的一个简单问题
给定一个函数原型和一个类型定义:
以下情况是否按标准定义:
我是否可以通过函数原型可预测地获得类型强制?
c# - 依赖属性强制绑定问题
我同时安装了 VS2008 和 VS2010,我看到一个非常奇怪的行为
在 VS2008 中,我有一个简单的 WPF 应用程序:
和
当我在文本框中输入随机字符串并点击选项卡时,我希望 textbox.Text 被重置为“强制值”。如果我调试我看到应用程序在强制功能中中断,但 UI 没有更新。
有趣的是,同样的代码在 VS2010 中也可以使用,UI 会使用强制值进行更新。有人知道发生了什么吗?
这是一个WPF错误吗?还是我错过了什么?
c# - 在不知道盒子里面有什么的情况下拆箱 uint/int
我有一个object o
被称为盒装int
或uint
:
我不知道盒子里有什么,我只关心里面有 4 个字节我想强制转换为int
or uint
。unchecked
当我有值(而不是框)时,这在上下文中可以正常工作:
注意:默认情况下,C# 中的所有内容都是未检查的,未检查的上下文仅在此处是必需的,因为我们正在处理文字,编译器想知道我们是否真的想在脚下开枪。
现在的问题是我不知道盒子里面有什么(除了它是 4 个字节),但是当我尝试解开错误的类型时,运行时会这样做,我得到一个InvalidCastException
. 我知道这是合理的运行时行为,但在这种情况下,我知道我在做什么并且想要一个“未选中的取消框”。存在这样的东西吗?
我知道我可以catch
重试,所以这不算作答案。