表达式与赋值详解
1. 表达式类型与形状
在编程中,不同类型的操作数进行运算会得到不同类型的表达式。例如,当 A 和 B 为 RATIONAL 类型时, A .PLUS. B 是一个无类型参数的 RATIONAL 类型表达式;当 C 和 D 为 SET 类型时, C .PLUS. D 是一个无类型参数的 SET 类型表达式。
表达式的形状由其中每个操作数的形状决定,规则如下:
- 操作数需满足一定的形状一致性要求。对于二元内置操作,两个操作数要么是相同形状的数组,要么其中一个或两个都是标量。当一个操作数是数组,另一个是标量时,会将标量扩展为与结果形状相同的数组进行运算,但如果不扩展也能完成运算,则无需实际扩展。
- 对于常量、变量、构造函数或函数等基本元素,其形状就是常量、变量、构造函数或函数名的形状。类型参数查询和类型参数名是标量。如果基本元素是对内置函数 NULL 的引用,结果的形状无关紧要,其类型、类型参数和秩由与结果关联的指针决定。
- 对于一元内置操作,结果的形状与操作数相同;对于二元内置操作,如果有数组操作数,结果形状与该数组操作数相同,否则为标量;对于定义的操作,如果操作数与虚拟参数的形状匹配,结果形状为指定操作的函数名的形状,如果定义函数是元素级的,则结果形状与数组操作数相同。
以下是具体示例:
-
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



