当前位置: 首页 > article >正文

Swan 表达式 - 选择表达式

ANSYS Swan 表达式支持选择(selection)表达式 case, if/then/else。选择表达式根据特定的条件选择不同的分支流。

if/then/else 表达式

if/then/else 表达式的文法如下

if expr then expr else expr 

其中,首个expr 的布尔表达式,若其为 true, 则返回 then 分支的流;若为false,则返回 else 分支的流。

如下示例为 if/then/else 的使用

function ifThenElseExpr (i: bool)
returns (o: int32)
{
let o = if i then 24 else 42;
}

case 表达式

case 表达式按匹配值选择相应的流。其文法如下

(case expr of (| pattern: expr )+)

文法中首个 expr 的类型可以是布尔表达式。比如下面的例子:

function caseExpr (i1: bool)
returns (o: int32)
{
  let o = (case i1 of 
  | true : 
  24
  | false :
  42); 
}

case 后的 expr 也可以是枚举类型。比如下面的例子:

type E1 = enum {LEFT, RIGHT};

function caseExpr2 (i: E1)
returns (o: int32)
{
let o = (case i of 
 | LEFT:
 24
 | RIGHT:
 42);
}

case 后的expr 可以是整数或字符类型。如果是此类情况,需要额外包含default 匹配模式。比如下面的两个例子:

function caseExpr3 (i: int32)
returns (o: int32)
{
let o = (case i of 
    | 1 : i+1 
    | 2 : i+2 
    | 3 : i+3 
    | default : i);
}
function caseExpr4 (i: char)
returns (o: int32)
{
let o = (case i of | 'a' : 24 | default : 42);
}

http://www.kler.cn/a/567608.html

相关文章:

  • 【由技及道】模块化战争与和平-论项目结构的哲学思辨【人工智智障AI2077的开发日志】
  • 美团自动驾驶决策规划算法岗内推
  • 将QT移植到RK3568开发板
  • 酒店管理系统(代码+数据库+LW)
  • MySQL并发知识(面试高频)
  • SOLID Principle基础入门
  • 机器学习3-聚类
  • 【图像平移、旋转、仿射变换、投影变换】
  • threeJs+vue 轻松切换几何体贴图
  • Flutter 学习之旅 之 flutter 使用 fluttertoast 的 toast 实现简单的 Toast 效果
  • 基于单片机的智能扫地机器人
  • ArcGIS Pro高级技巧:高效填充DEM数据空洞
  • 软件测试中的BUG
  • 【人工智能】数据挖掘与应用题库(1-100)
  • 软件测试之白盒测试知识总结
  • OpenHarmony图形子系统
  • 网络安全-使用DeepSeek来获取sqlmap的攻击payload
  • 【自学笔记】DevOps基础知识点总览-持续更新
  • idea 编码设置
  • React的TSX中如何同时使用CSS模块的类名和字符串类名