Caché ObjectScript Functions中$SELECT $S用法以及注意点

162 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

一点说明

首先在Caché ObjectScript Functions中方法是不分大小写的.所以$SELECT $S或者$select $s都是一样的。下文统一用$s

具体使用方法

$s的用法是返回第一个条件为真的关联值

每对条件值和关联值用 : 表示关联。各对之间用 , 分开。即:

$s(条件值1:关联值1,条件值2:关联值2)

如定义变量a=2,那么下面的语句就输出a=2

w $s(a=1:"a=1",a=2:"a=2"),! //a=2

以下是几种举例:

1) 条件值可以匹配的情况

如上面的代码一样,可以返回你想要的关联值。

值得注意的是,$s完全可以写成if else结构。如下:

if (a=1) {w "a=1",!}
elseif (a=2) {w "a=2",!}       //a=2

2) 条件值都匹配不上的情况

在条件值都匹配不上的情况下,会报<SELECT>错误

当然这种情况下,为了让程序例程继续执行下去,可以把最后一项条件值设置成真(如同switch casedefault ),或者用Try Catch语句。

如:

w $s(c=1:"c=1",c=2:"c=2",1:"no case select"),! //no case select

3) $s只会匹配向右的第一个条件为真的情况

后面剩下的向右条件为真的都不会管。

如定义变量d=1,那么下面的语句就输出d=1,而不是d is 1

w $s(d=1:"d=1",d=1:"d is 1"),! //d=1

3) 条件值的表达式是非零数值或非零数值字符串的情况

这种情况下条件值为真,即1。如 123-1230.123

3) 条件值的表达式是非数值字符串的情况

这种情况下条件值为false,即0。如:

set e1="e1"
w $s(e1:"e1",1:"s"),!      //s

代码地址 test6