静态类型语言中的合并运算符

0 投票
1 回答
764 浏览
提问于 2025-04-17 15:21

我对合并运算符不太了解,只是从一些Python的用法中大概知道它是什么。

在我看来,合并运算符就像是一个搅拌机或者合并器,它把不同的表达式结果混合成一个唯一的值。

这个在Python中的表达式会得到"some value"

value = True and "some value"

而这个表达式的结果是False

value = False and "some value"

我可以用一些表达式来进行计算,而不是直接使用布尔值,但在像C++这样的静态类型语言中,这样做是行不通的——除非使用模板,我想。

我的问题是:有没有支持合并运算符的静态类型语言,或者说表达式求值问题是这些语言不支持这个特性的原因吗?

为了提供一些背景,我最近在C++中尝试处理类似这些表达式的东西,但总是遇到expected primary-expression before的错误——根据我的推测,问题出在语言的类型处理上。

1 个回答

0

简单来说,不可以。

C++和Python(或者PHP,或者其他一些“高级语言”)是不同的。在Python中,一个变量可以从存储布尔值(真或假)变成存储字符串(文字),再变成存储浮点数(小数)。而在C和C++中,变量一开始就要声明它要存储的具体类型。虽然有一些方法可以在同一个结构中存储不同类型的数据,比如“Boost::variant”,它的工作方式和Python内部的处理有点像——它会在数据结构里记录“这个变量是什么类型”。

撰写回答