问题标签 [explicit-conversion]

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 投票
0 回答
130 浏览

r - 显式强制在 R 中是如何工作的?

我正在尝试理解 R 编程语言中的COERCION。当谈到显式强制时,它指出我们可以从一类向量(考虑到一般对象)转换为另一类。

考虑以下,

所以 x 的类在这里是整数。现在我们可以将其转换为逻辑,

所以现在 x 的类根据强制应该是合乎逻辑的,但是当我再次显示 x 的类时,如下所示,

它是如何工作的?请帮助我理解。请更正我的句子 “所以现在 x 的类应该是合乎逻辑的

0 投票
1 回答
111 浏览

c++ - static_cast() vs type ()

In the "Programming: Principles and Practice Using C++", "Section 8.5.7 Argument checking and conversion" the following example is given as evidence on how to properly convert types, but never clearly explains why you would use int() vs static_cast<int>() to convert from a double to an int. However, I'm still unclear on the benefits of static_cast<int>() vs int().

I checked section 17.8, but still didn't find clarity on this topic. Can someone help? I'm looking for a solution that compares static_cast with function-style cast.

0 投票
0 回答
47 浏览

definition - C#语言规范说明:6.2.4 显式引用转换

正如我在这篇文章中提到的,我面临着一种对我来说无法理解的编译器行为。

编码:

它编译,但在运行时失败:InvalidCastException;对我来说,这很明显。

如果我将其更改IListList如下,它会抱怨:

当而不是我如下放置的类类型时var,智能感知识别正确的类型:

我的第一个问题是:为什么编译器不抱怨?答案是该行为尊重C# 语言定义。参见章节 6.2.4 显式引用转换,第 116 页。

阅读第 4 条和第 5 条语句:

• 从任何接口类型 S 到任何类类型 T,只要 T 不是密封的或提供 T 实现 S。

• 从任何接口类型 S 到任何接口类型 T,前提是 S 不是从 T 派生的。

对于第一个陈述的第二部分provided T implements S是明确的,毫无疑问。但是,如果接口类型 S不是派生的或未实现
,为什么我们要将它强制转换为任何类类型 T呢? 在哪种情况下/场景中具有非空列表的代码将在不抛出? 的情况下运行?
InvalidCastException

0 投票
1 回答
114 浏览

c++ - 转换构造函数和运算符都存在并且涉及显式性时的行为

我有一段代码,其中有转换构造函数和转换运算符。

  1. 如果两者都是非显式的。我收到一个编译器错误,说第一个表达式不明确。第二个表达式调用构造函数。
  2. 如果只有 operator 是显式的,则两种转换都使用构造函数。
  3. 如果只有构造函数是显式的,则第二个转换调用构造函数,第一个使用运算符。
  4. 如果两者都是显式的,我只能编译第二个表达式。它使用构造函数。

我不明白为什么在第二种情况下的第二个表达式中没有调用转换运算符。

我还期望在第四个场景(类似于第一个场景)中出现歧义错误,但选择了构造函数。

我使用带有 -pedantic 和 -std=c++17 标志的 g++ 7.4.0 进行编译。

0 投票
3 回答
474 浏览

c++ - 如果 (static_cast(x)) 与如果 (x)

我有一位同事经常在条件句中进行显式强制转换,例如:

但我一直无法为这种冗长找到充分的理由。有任何想法吗?

编辑:同事说这是关于清晰和明确的,但我觉得这个解释不是很有说服力。我提出这个问题是想看看其他 C++ 专家是否推荐这个,如果是,也许会出现一个更有说服力的论点。

0 投票
0 回答
138 浏览

java - 为什么字节到字符的转换需要int加宽转换

根据规范

以下转换结合了加宽和收窄原始转换:

字节到字符

首先,通过加宽基元转换(第 5.1.2 节)将字节转换为 int,然后通过缩小基元转换(第 5.1.3 节)将生成的 int 转换为 char。

将字节文字扩大到 int 的转换不会改变文字。它强制扩展位,但不更改值或文字。那么这里有什么意义呢?JVM 可以直接将字节文字转换为 char 文字(当然是通过提供转换指令),而不是将字节转换为 int,然后将其转换为也需要转换指令的 char?

0 投票
2 回答
120 浏览

c# - 来自 IEnumerable 的 C# 强制转换到 T

谁能解释一下:

  • 编译确定
  • 运行时 KO

我已经检查了 IEnumerable<> 和 IEnumerable 的源代码,但没有发现任何东西仅供参考,这不适用于 List

0 投票
1 回答
167 浏览

c++ - C++:带有显式关键字的编译错误

以下代码引发编译错误:

抛出的错误是:

如果我从中删除显式关键字,错误就会消失explicit Option(const Option& other)

有人可以向我解释编译错误的原因是什么吗?explicit Option(const Option& other)另外,如果和之间有区别explicit Option(Option& other)

0 投票
1 回答
94 浏览

c++ - 从我的类到字符串的隐式和显式转换

我的课是这样的:

我希望能够像这样隐式地初始化 std::string ,但是会出现大量错误:

甚至明确地不起作用:

但是将 x 转换为(const char*)工作正常:

除了你们拥有的任何解决方案之外,还有任何其他建议来制作一种应该可以自由转换为 C 样式字符串和std:string?(我已经有用于 Xconst char*std::stringx 的构造函数,并且可以这些类型中进行赋值。

0 投票
0 回答
42 浏览

c# - c# 中两个列表/IEnumerable 之间的隐式/显式转换

我可以在两个列表之间进行隐式/显式转换吗?