问题标签 [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.
jsf - Java EE 7、EL 3.0 规范。关于类型强制的变化
所以我已经离开 Java EE 六个月了,现在我回来并将应用程序迁移到Java EE 7,我注意到JSR-341/EL 3.0 规范。包含类型转换部分的更改(现在,第 1.23 节;以前,第 1.18 节)。
在 1.23 节中,除了 String 之外的所有各种类型的第一条规则是,如果 X 为 null 且 Y 不是原始类型,则返回 null。这是一个非常受欢迎的变化。
所以我的第一个问题是:关于第 1.23.3 节 Coerce A to Number type N,
在 EL 2.1 中:
如果 A 为 null 或 "",则返回 0。
在 EL 3.0 中:
如果 A 为 null 且 N 不是原始类型,则返回 null。
否则,如果 A 为 null 或 "",则返回 0。
现在不再需要设置系统属性了org.apache.el.parser.COERCE_TO_ZERO=false
吗?
接下来,还有一些其他的变化引起了人们的质疑:
在第一小节第 1.23.1 节(以前的 1.18.1)中,为了将值 X 强制转换为类型 Y,给出了一般情况的规则。现在,添加了一个新项目符号(强调我的):
如果 X 为 null 且 Y 不是原始类型也不是 String,则返回 null。
在 1.23.2 Coerce A to String部分中,前两个项目符号已翻转。它们现在按以下顺序排列:
如果 A 为空:返回“”<br> 否则,如果 A 为字符串:返回 A
看起来,虽然之前空字符串在强制之后仍然是空字符串,但现在空字符串被强制转换为空字符串。所以我的第二个问题是:我是否正确地阅读了这个,String 现在在强制方面的处理方式与其他类型的对象不同?如果是这样,为什么?
这种变化似乎违反直觉,因为我们都知道 null 具有特殊含义。此外,这种变化令人担忧,因为它会对我正在迁移的代码产生不利影响,这些代码最初是针对旧规范编写的。
最后,我的第三个问题是:bean 验证呢?这是否意味着现在@NotNull
支持 bean 中的字符串注释是无用的,因为强制字符串值永远不能为空?我对此表示怀疑,但我想知道新的变化是如何协同工作的。
r - 如何将 readline() 中的输入从字符强制转换为数字
我是一个新的 R 用户,我正在编写一个函数,该函数将使用 readline() 提示用户输入数据。我希望稍后在函数的公式中使用答案。
我收到错误消息“w/m 中的错误:二进制运算符的非数字参数”
我发现用户的输入是字符类,我想将其转换为数字,以便我可以通过 (wh) 公式运行它。
我的代码看起来像这样......
javascript - Javascript变量名强制转换为字符串
我正在尝试使用传入的字符串变量更新 mongo 中的数据库。但是,Javascript 会自动强制变量类型,并在数据库中创建一个“类型”键,而不是字符串类型指向的内容(比如说“通知“ 例如)
是否有强制 mongo 使用“通知”而不是创建新的“类型”键?谢谢!
ruby - Understanding coercion
I've submitted a pull request, which modifies the Matrix
class so that additions can be performed with real numbers:
Matrix[ [25, 93], [-1, 66] ] + 5
The Matrix
class has a method +()
, which is called in this case.
I would also like users to be able to change the order of the operation to
5 + Matrix[ [25, 93], [-1, 66] ]
The Matrix
class seems to support this order of operation for the *()
method and I'm unsure how to implement this for the +()
method.
groovy - 使用 map 实现迭代器接口不适用于 java 8 流
我将从代码开始:
这两种在 groovy 中实现迭代器的方法似乎在语义上是等价的,并且在正常用例中,例如使用 foreach 进行迭代,以及在列表推导中使用似乎都将它们视为相同。然而,Java 8 Streams api 似乎对它们进行了不同的处理,如上所示。如何以及为什么?我可以对地图实现接口版本做些什么来使其正常运行吗?
r - 比较 POSIXlt 对象和日期字符串是否正确?
我最近遇到了将 POSIXlt 日期对象与日期字符串进行比较的 R 代码。
结果,至少对我来说令人惊讶的是,结果是 FALSE。我期待 POSIXlt 对象将被强制转换为字符向量,因此不等式应该测试为 TRUE。然后我尝试了显式强制,并将任何一方强制转换为另一方的类型,结果为真。
和
我认为将 LHS 日期对象强制为字符向量在语义上是错误的,因为然后比较将是字典顺序的,这不是预期的(尽管在这种情况下它的计算结果为 TRUE)。我对吗?
在我看来,第三个表达式是语义正确的代码。但是为什么第一个代码不起作用(它评估为 FALSE)?在比较它们之前,R 不会强制双方都使用字符向量吗?
这是我的平台信息:
我是 R 新手。非常感谢任何帮助。
谢谢,法尔汉
r - 从列因子强制列名并填充
我有类似的数据
下面是一些有代表性的数据
如何从名称生成一个表,其中该表具有单元列,t,然后名称列中的名称被强制转换为没有警报/非操作的名称分解列,并且分解名称列中的值应该是 NA 、A(用于警报)和 N(用于 NonOp)。这是我要查找的表格类型,如果上面的所有数字都是针对单元 1 的。
目标是将命名的alerts/nonops 放入一个按unit/t 排序的表中,并将该表写入一个文件。并将文件读入excel。
r - Is this coercion? Why is R telling me these are the same data types?
In a dataframe, I want to be able to separate columns with numeric types from columns with strings/characters.
Here is my data:
Which looks like
Now here is the strange thing if I do typeof a row/col containing a character, R says it is an integer
If I do something like this
R says they are all characters. Also,
Again, what is going on and is there a good way to distinguish between columns with characters and columns with integers?
r - R数据框因素
我想要droplevels
一个数据框(请不要将此问题标记为重复:))。鉴于所有可用的方法,只有一种有效。我究竟做错了什么?例子:
方法1不起作用:
方法2不起作用:
方法3不起作用:
方法4终于奏效了:
在工作时,我认为方法 4 是最不优雅的。你能帮我调试一下吗?非常感谢
编辑:以下评论和答案:我想从数据框中删除因子结构,而不仅仅是droplevels
r - 将因素强制转换为整数的问题
我正在尝试将数据帧(p2)中的因子(tickets_other)转换为整数。遵循 R 帮助指南以及其他人的其他建议,此代码应该可以工作:
该列确实包含 NA,因此我收到警告:
这很好,但在将其强制为数字之后,它仍然被视为一个因素:
如果我使用 as.numeric(as.character.()),也会出现同样的结果: