问题标签 [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.
haskell - 与 unsafeCoerced 值一起使用时显示返回错误值
我正在尝试使用unsafeCoerce
and Int8
,Word8
我发现了一些令人惊讶的行为(无论如何对我来说)。
Word8
是一个 8 位无符号数,范围为 0-255。Int8
是一个有符号的 8 位数字,范围为 -128..127。
由于它们都是 8 位数字,我认为将一个强制转换为另一个是安全的,并且只返回 8 位值,就好像它是有符号/无符号的一样。
例如,unsafeCoerce (-1 :: Int8) :: Word8
我希望得到一个Word8
255 的值(因为 -1 在有符号整数中的位表示与无符号整数中的 255 相同)。
但是,当我执行强制时,Word8
行为很奇怪:
我不明白怎么show x
回到"-1"
这里。如果您查看,结果中map show [minBound..maxBound :: Word8]
没有可能的值。此外,即使类型没有改变,向数字添加 0 会如何改变行为?奇怪的是,似乎只有类受到影响——我的类返回正确的值。Word8
"-1"
Show
ShowType
最后,代码fromIntegral (-1 :: Int8) :: Word8
按预期工作,并返回 255,并与show
. 编译器是否/可以将此代码简化为无操作?
请注意,这个问题只是出于对类型在 ghc 中的低级别表示方式的好奇。我实际上并没有在我的代码中使用 unsafeCoerce。
r - 从 C/C++ 代码访问“自然强制”逻辑
调用unlist
orc
时,该类型将被提升为能够表示所有内容的最小类型:
如何从 C/C++ 代码访问此逻辑?
我查找了 and 的 C 源代码,c
并在and ( )unlist
中找到了以下代码:do_c_dflt
do_unlist
main/bind.c
data
类型为的变量由似乎定义强制逻辑BindData
的例程计算。AnswerType
但是,该类型仅BindData
在中声明bind.c
。
那么:R 的一般强制逻辑是导出到任何地方,还是我必须从 复制粘贴代码bind.c
?(对不起双关语……)
python - 使用 NAN 替换强制转换非数字 numpy 数组
考虑数组
x = np.array(['1', '2', 'a'])
绑定转换为浮点数组会引发异常
numpy 是否提供任何有效的方法来将其强制转换为数字数组,用 NAN 之类的东西替换非数字值?
或者,是否有一个等效于 的有效 numpy 函数np.isnan
,但它也测试非数字元素,如字母?
python - Python 的字符串和 unicode 强制/魔术函数如何工作?
我正在使用 Python 版本:2.7.3。
在 Python 中,我们使用魔法方法__str__
来__unicode__
定义自定义类的行为:str
unicode
该行为表明来自__str__
and的返回值__unicode__
被强制为str
或者unicode
取决于运行哪个魔术方法。
但是,如果我们这样做:
调用str.mro()
并unicode.mro()
表示两者都是basestring
. 但是,__unicode__
也允许返回buffer
直接继承自object
而不继承自的对象basestring
。
str
所以,我的问题是,当和unicode
被调用时实际发生了什么?__str__
和__unicode__
中使用str
和的返回值要求是unicode
什么?
ruby - 除了 .round(1) 之外,还有更好的方法将整数强制转换为 Ruby 中的浮点吗?
正是问题在标题中所说的。我有一对整数,我想将其转换为浮点数,以便可以对其进行浮点数学运算(以获得不错的百分比)。
现在我的代码看起来像这样。
有人请告诉我有一种更好的方法可以将 failure_and_run_count 中的整数强制转换为浮点数。
multiple-inheritance - Coq 中的致命钻石
我正在尝试创建一个相当直接的类型层次结构。这是一个最小的工作示例:
最后一次强制生成以下警告:
实际上,从R12
to R0
(or Sortclass
) 的强制转换可以采用两种不同的路径。而且我理解为什么 Coq 在一般情况下会不允许这样做。因为……它们中的哪一个会被使用?
但是,在这种情况下,可以证明两条路径的强制转换R1_0 (R12_1 r12)
是R2_0 (R12_2 r12)
完全相同的。但我仍然无法添加以下看似有效的公理:
问题:那么有没有办法让 Coq 相信这是可以的?
string - 混合(字符和数字)变量的逻辑查询
我不认为这会那么困难,但我已经挣扎了一段时间......我希望这是我所缺少的简单的东西:) 我需要能够在逻辑上查询包含混合字符串的变量的数据框和数字。
实现这一点的最佳方法是什么,以便将明显不等于 1 的字符串报告为 FALSE,而不是 NA?谢谢。
actionscript-3 - 1067:将类型为 theplayclass 的值隐式强制转换为不相关的类型 main
我需要帮助,因为我想创建一个显示分数的游戏结束屏幕。但是,有一个错误阻止我将分数从 theplayclass.as 转移到 thegameoverclass.as。有没有办法将值传递给另一个影片剪辑而不会导致任何错误。
我参考了这个网站的源代码:http ://www.emanueleferonato.com/2008/12/17/designing-the-structure-of-a-flash-game-as3-version/
这是错误
C:\Users\xxx\Downloads\Migrate\test\theplayclass.as,第 54 行,第 41 列 1067:将 playclass 类型的值隐式强制转换为不相关的 main 类型。
主文件
游戏类.as
游戏结束类.as
ocaml - 强制类型缩写记录
为什么我不能在 OCaml 中强制记录类型?像这样的基本类型int
工作正常。
下面是一个示例,其中我构建了一个M
包含在 module 中的基本模块A
。M.t
是类型的缩写A
。只要M.t
是int
,我都能做到A.t' :> M.t
。当我将其更改为 时{i : int}
,编译器会说它不是子类型。我猜这有一个非常具体的原因?
在顶层:
r - as.Date in for 循环意外执行
as.Date
为什么在 for 循环中使用这种(当然是非正统的)会产生意想不到的结果?
我有以下日期向量:
现在当然要以标准日期格式获取它们,我可以使用
但在我的脚本的上下文中,我想使用一个for
循环: