5.2.1长语句

对于某些较长的表达式写在一个格内看不全,可以用续格规则写在多个单元格中。续格规则就是指在计算格或执行格以字符,(逗号)或 ;(分号)结尾时,将自动拼接下一格内容,直到不是这些字符结尾或本行(代码块)结束。如:

 

A

B

C

1

==["one","two",

"three","four",

"five"]

2

==create(Field1,

Field2,

Field3)

3

==demo.query(

"select NAME,

STATEID from CITIES")

4

==A3.groups(

STATEID;

count(~):Count)

5

>>C5=A4.(

Count)

 

例子中,每一行都是一个长语句。长语句需要用双等号"=="或者双大于号">>"开头,对于这样的写法集算器将用续格规则拼接表达式。对于==开端的表达式,计算结果将存储在首格中。A1,A2,A3A4中计算后的结果分别如下:

 

 

A5中的长语句用来为C5赋值,C5中的值如下:

从例子中可以看到,在长语句中,可以使用各种函数,只需保证前方的单元格均以 ,;( 等字符结尾。

 

长语句在用于if,case等函数时,可以使表达式的结构显得更为清晰,如:

 

A

B

C

D

1

Position

F

 

 

2

==case(B1,

"C":"Center",

"F":"Forward",

"G":"Guard")

3

Month

7

 

 

4

==if(B3<=3:"Q1",

B3<=6:"Q2",

B3<=9:"Q3",

"Q4")

A2中将比赛中场上位置的缩写转为对应的单词。A4中计算B3中的月份属于第几季度。A2A4中的计算结果分别如下:

 

 

长语句除了可以用在同一行中,还可以使用在代码块里。此时,以长语句的首格为主格,代码块中的单元格均作为续格。如:

 

A

B

C

1

Air Quality Index

[59,164,50,104,93]

 

2

=B1.(func(A3,~))

 

 

3

func

==if(

A3>300:"Hazardous",

4

 

 

A3>200:"Very Unhealthy",

5

 

 

A3>150:"Unhealthy",

6

 

 

A3>100:"Unhealthy for Sensitive Groups",

7

 

 

A3>50:"Moderate",

8

 

 

"Good")

9

 

return B3

 

在这个例子中,长语句用在A3的子程序中,根据空气质量指数返回对应的等级。长语句所在区块的主格是B3,续格是C3~C8A2调用子程序计算一批AQI数据对应的质量等级,A2中结果如下:

集算器处理长语句时,会将长语句首格为主格的代码块,整个作为一条语句处理。否则会依次执行该代码块中的单元格,可能会导致错误。