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

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);
}

相关文章:

  • ZK Rollup
  • 记20忘10之六:line
  • 隐私风险加剧,2025年1月超过82000款App被Google Play移除!
  • AI助理精准匹配------助力快速搭建Stable Difussion图像生成应用
  • 【Springboot】解决问题 o.s.web.servlet.PageNotFound : No mapping for *
  • 时钟树的理解
  • 2025生成式AI技术趋势深度解析:从企业战略到轻量化部署的全面转型
  • SpringBoot+Redis+Mybatis-plus黑马点评
  • Java多线程与高并发专题——深入ReentrantReadWriteLock
  • Vue3 Composition API与十大组件开发案例详解
  • 千峰React:案例二
  • DeepSeek实战
  • 51c自动驾驶~合集22
  • 蓝桥杯web第三天
  • 《Python实战进阶》No 8:部署 Flask/Django 应用到云平台(以Aliyun为例)
  • FFmpeg入门:最简单的音频播放器
  • 前端实现上传图片到OSS(Vue3+vant)
  • 网络安全深度剖析
  • GPIO(嵌入式学习)
  • 当AI重构认知:技术狂潮下的教育沉思录
  • 傻瓜做网站/百度seo搜索引擎优化
  • 深圳微信分销网站建设/百度集团公司简介
  • 彩妆网站建设报告/网络营销的常用方法
  • 网站建设怎么进行一级域名申请/网络营销推广计划
  • 东莞建筑公司排名/厉害的seo顾问
  • 青岛网站建设设计/最近的新闻大事10条