假设我们有一个计算圆的相关属性的函数,它返回半径和圆的面积,这样写:

注意观察函数的返回值有两个,圆的周长和圆的面积,当我们调用函数时,无法使用y=f(x)这样的结构接受两个函数返回值。
在Modelica中,可以通过 解构赋值 来同时接收多个返回值,类似于 (x, y) 的结构。
这种语法可以用来将一个函数的多个返回值直接解包并赋值给多个变量。
换句话说,等号左边括号内用逗号分隔开的参数值是由函数的相应返回值进行赋值的(或在函数内部使用了 equation 区域时,等于相应值)。

(c, a) := CircleProperties(r); 语法将 CircleProperties 函数返回的两个值(周长和面积)分别赋值给 c 和 a。
这是Modelica中的一种非常简洁且直接的方式,尤其适用于返回多个值的情况。
需要注意的是,函数返回值的顺序是按函数定义是output的顺序返回的,第一个output对应c,第二个output对应a。