问题标签 [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 投票
5 回答
2348 浏览

c++ - 当作为函数模板的 T* 参数传递时,使用运算符 T* 强制模板类

假设我有一个这样的函数模板:

然后在另一个.h文件中,我有一个模板类Foo,它具有:

现在,我意识到这些是不同的 T。但是如果我Foo<Bar> f在堆栈上有一个变量,将它强制为任何类型的指针的唯一方法就是调用operator T*(). 然而,如果 call doStuff(f),GCC 会抱怨doStuff不能Foo<Bar>自动使用运算符T*()强制转换Bar*,然后使用Baras专门化函数模板T

我可以做些什么来使用两个模板来完成这项工作吗?或者模板函数的参数必须是真正的指针类型,还是带有强制运算符的模板类被传递给非模板函数?

0 投票
3 回答
289 浏览

javascript - JavaScript 如何处理 ++ 运算符?

JavaScript 使用对象进行时髦的自动转换:

将打印:

这是因为 +,如果任何参数是对象/字符串,将尝试将所有参数转换为字符串,然后将它们连接起来。如果所有参数都是数字,则将它们加在一起。* 和 unary + 使用 toString(以及 valueOf,此处未显示)将对象转换为数字。

JavaScript 对 ++ 运算符有什么作用?

0 投票
3 回答
2967 浏览

wpf - 如何使 Binding 尊重 DependencyProperty 值强制?

我有一个带有 CoerceValueCallback 的 DependencyProperty 控件。此属性绑定到模型对象上的属性。

当将控件属性设置为导致强制的值时,绑定会将未强制的推送到模型对象。控件上的属性值被正确强制。

如何让绑定将强制值推送到模型对象?

0 投票
1 回答
2416 浏览

groovy - 我可以在 groovy 中使用映射强制来模拟具有带参数的构造函数的类吗?

正在测试的 Java 示例类

groovy 测试类

前两个测试编译并运行良好。后一个测试由于异常而无法运行:

在上面第三类的情况下,我还可以使用 groovy map coercion 来模拟类吗?如果是这样,我做错了什么?

0 投票
1 回答
370 浏览

apache-flex - CFC 和 Flex 之间的嵌套类强制失败

我有两个 AS3 类,A 和 B。A 类包含一个 ArrayCollection,它将保存 B 类的多个实例。

在 ColdFusion 中,我有匹配的 CFC,具有相同顺序的同名变量,以及每个变量的 cfproperty 标记。

AS3 类都使用 RemoteClass 元数据将它们与对应的 CFC 相关联。

问题是,虽然 A.cfc 从 CF 返回并适当地填充 A.as 实例,但我无法填充任何嵌套的 B.as 实例。相反,我收到此错误:

除了嵌套的 B 实例的集合之外,为什么 A 实例可以正常工作?

0 投票
2 回答
1964 浏览

flash - Flash AS3:出现此错误:未定义属性的访问 - 需要基本范围帮助 :(

我仍然习惯于 1 帧上所有代码的 AS2 样式,我正在尝试在类文件中编写 AS3 代码,但我遇到了基本包设置的问题。尝试学习 AS3 时,范围问题让我很生气。下面是我的包代码,我没有其他类文件,只是想返回一个简单的trace。

运行以下代码后出现的错误:1120:访问未定义的属性 tc。


主班


子类

0 投票
2 回答
32918 浏览

python - Python中的强制转换和强制转换有什么区别?

在 Python 文档和邮件列表中,我看到值有时是“强制转换的”,有时是“强制的”。

0 投票
4 回答
12507 浏览

c++ - 没有类的 C++ 用户定义的转换运算符?

在 C++ 中是否可以定义不是类成员的转换运算符?我知道如何对常规运算符(例如 +)执行此操作,但不适用于转换运算符。

这是我的用例:我使用一个 C 库,它给我一个PA_Unichar *,其中库将 PA_Unichar 定义为 16 位 int。它实际上是一个以 UTF-16 编码的字符串。我想将其转换为std::stringUTF-8 编码。我已经准备好所有的转换代码并且可以工作了,我只是缺少可以让我编写的语法糖:

(通常在没有临时变量的一行中)。

另外值得注意的是:

  • 我知道这std::string没有定义隐式转换char*,我知道为什么。相同的原因可能适用于此,但这无关紧要。

  • 我确实有一个ustring, 的子类,std::string它定义了正确的转换运算符 from PA_Unichar*。它可以工作,但这意味着使用ustring变量而不是std::string当我将这些字符串与其他库一起使用时需要转换。std::string所以这没有多大帮助。

  • 使用赋值运算符不起作用,因为它们必须是类成员。

那么是否可以在您无法控制的两种类型(在我的情况下为PA_Unichar*std::string)之间定义隐式转换运算符,它们可能是也可能不是类类型?

如果不是什么可能是解决方法?

0 投票
3 回答
24506 浏览

map - 如何在 Clojure 中将字符的 LazySeq 转换为字符串?

假设我有一个类似java.lang.CharacterLazySeq

如何将其转换为字符串?我已经尝试了明显的

但它抛出

我认为是因为 String 构造函数需要一个原始的char[]而不是LazySeq。所以然后我尝试了类似的东西

但它抛出了同样的异常。现在的问题是into-array正在返回java.lang.Character[]而不是原始的char[]。这令人沮丧,因为我实际上像这样生成我的字符序列

基本上我有一个表示 ASCII 字符的整数序列;65 = A 等。你可以看到我明确地使用了原始类型强制函数(char x)

这意味着我的map函数正在返回一个原始字符,但 Clojure 的map函数总体上正在返回java.lang.Character对象。

0 投票
4 回答
1765 浏览

python - Python:识别数字字符串?

我尝试了几种方法,我真的只关心性能,而不是正确性。我注意到基于正则表达式的实现比使用类型强制的实现慢 3-4 倍。还有另一种更有效的方法吗?

谢谢!