0

我对合并运算符不是很熟悉——我只是从一些 Python 用法中知道它到底是什么。

就我而言,合并运算符是一种混合器合并运算符,它将不同的表达式结果组合成一个唯一值。

Python 中的这个表达式的计算结果为"some value"

value = True and "some value"

而这个是False

value = False and "some value"

我可以使用一些表达式来评估,而不是直接使用布尔值,但是在静态类型语言(如 C++)中,这是行不通的——除非使用模板,我猜。

我的问题是:是否有任何静态类型的语言支持coalescing operators,或者评估表达式问题是这些语言不支持此功能的原因?

只是为了添加一些上下文,我最近一直在尝试在 C++ 中操作接近这些表达式的东西,但它总是会导致expected primary-expression before错误——据我推断问题出在语言类型方法上。

4

1 回答 1

0

简而言之,没有。

C++ 不是 Python(或 PHP 或其他一些“高级语言”)。在 Python 中,变量可以从包含布尔值变为包含字符串到包含浮点数。在 C 和 C++ 中,变量被声明为包含特定类型。有一些方法可以在同一个结构中存储不同的类型,例如“Boost::variant”,它的作用类似于 Python 内部所做的——它在数据结构中具有“这个变量是什么类型”。

于 2013-02-09T15:12:48.670 回答