在一行中加入语句
Join statements in a line
我想在我的 NATURAL 程序中在一行中加入一些指令。就像这样:
**before
Statement1
Statement2
Statement3
**after
Statemen1 statement2 statement3
我知道在大多数语言中这很容易做到,但我不确定在 Natural 中是否可行。
语言中没有任何限制可以防止将语句放在一行中。例如,这是一行中的整个程序。
DEFINE DATA LOCAL 1 #A (A10) END-DEFINE MOVE 'XX' TO #A WRITE #A END
但是,这真的不是阅读乐趣并且适用于所有语言。下一个必须维护代码的人请记住这一点。
道格拉斯·巴德,英国王牌飞行家等人的名言
“规则是智者的指引,愚者的服从”
我总是说:
“唯一始终有效的规则是没有任何规则始终有效”
在编程中我们有很多有用的规则,其中之一是:
“每条语句另起一行”
...遵循这句格言是明智的,但也有例外。
有时,您实际上可以通过打破规则来提高代码的可读性。
这是一个示例(以自然语言编写):
define data
local 1 DATE-FROM (D) /* (D=Natural Date-Format)
1 DATE-TO (D)
end-define
DATE-FROM := *DatX /* System Variable = "Today"
DATE-TO := DATE-FROM + 1
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 2
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 3
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 4
perform P800-WRITE-DATE
define subroutine P800-WRITE-DATE
write DATE-FROM(em=DD.MM.YYYY)
DATE-TO (em=DD.MM.YYYY)
end-subroutine
END
现在,我会把它的执行部分写成如下:
DATE-FROM := *DatX DATE-TO := DATE-FROM + 1 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 2 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 3 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 4 perform P800-WRITE-DATE
它更容易理解、发现拼写错误和交付质量。
今天的输出是:
28.02.2021 01.03.2021
01.03.2021 03.03.2021
03.03.2021 06.03.2021
06.03.2021 10.03.2021
回到最初的问题:
在 Natural 中,您 可以 以“;”结束语句但 不需要 。以下是完全有效的:
DATE-FROM := *DatX ; DATE-TO := DATE-FROM + 1 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 2 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 3 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 4 ; perform P800-WRITE-DATE;
虽然我们在这里,但另一个小的打字辅助是连续字符“-”,最初是为在下一行继续文字而设计的,但也可用于提高可读性:
define data
local 1 DATE-A8 (a8)
end-define
DATE-A8 := '20211231'
DATE-A8 := '2021' - '12' - '31'
DATE-A8 := '2021'
- '12'
- '31'
END
希望你觉得有用。
我想在我的 NATURAL 程序中在一行中加入一些指令。就像这样:
**before
Statement1
Statement2
Statement3
**after
Statemen1 statement2 statement3
我知道在大多数语言中这很容易做到,但我不确定在 Natural 中是否可行。
语言中没有任何限制可以防止将语句放在一行中。例如,这是一行中的整个程序。
DEFINE DATA LOCAL 1 #A (A10) END-DEFINE MOVE 'XX' TO #A WRITE #A END
但是,这真的不是阅读乐趣并且适用于所有语言。下一个必须维护代码的人请记住这一点。
道格拉斯·巴德,英国王牌飞行家等人的名言
“规则是智者的指引,愚者的服从”
我总是说:
“唯一始终有效的规则是没有任何规则始终有效”
在编程中我们有很多有用的规则,其中之一是:
“每条语句另起一行”
...遵循这句格言是明智的,但也有例外。
有时,您实际上可以通过打破规则来提高代码的可读性。
这是一个示例(以自然语言编写):
define data
local 1 DATE-FROM (D) /* (D=Natural Date-Format)
1 DATE-TO (D)
end-define
DATE-FROM := *DatX /* System Variable = "Today"
DATE-TO := DATE-FROM + 1
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 2
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 3
perform P800-WRITE-DATE
DATE-FROM := DATE-TO
DATE-TO := DATE-FROM + 4
perform P800-WRITE-DATE
define subroutine P800-WRITE-DATE
write DATE-FROM(em=DD.MM.YYYY)
DATE-TO (em=DD.MM.YYYY)
end-subroutine
END
现在,我会把它的执行部分写成如下:
DATE-FROM := *DatX DATE-TO := DATE-FROM + 1 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 2 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 3 perform P800-WRITE-DATE
DATE-FROM := DATE-TO DATE-TO := DATE-FROM + 4 perform P800-WRITE-DATE
它更容易理解、发现拼写错误和交付质量。
今天的输出是:
28.02.2021 01.03.2021
01.03.2021 03.03.2021
03.03.2021 06.03.2021
06.03.2021 10.03.2021
回到最初的问题:
在 Natural 中,您 可以 以“;”结束语句但 不需要 。以下是完全有效的:
DATE-FROM := *DatX ; DATE-TO := DATE-FROM + 1 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 2 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 3 ; perform P800-WRITE-DATE;
DATE-FROM := DATE-TO ; DATE-TO := DATE-FROM + 4 ; perform P800-WRITE-DATE;
虽然我们在这里,但另一个小的打字辅助是连续字符“-”,最初是为在下一行继续文字而设计的,但也可用于提高可读性:
define data
local 1 DATE-A8 (a8)
end-define
DATE-A8 := '20211231'
DATE-A8 := '2021' - '12' - '31'
DATE-A8 := '2021'
- '12'
- '31'
END
希望你觉得有用。