Basic 语法
Euphoria语言与Perl,C和Java有许多相似之处。 但是,语言之间存在一些明显的差异。 本章旨在让您快速了解Euphoria中预期的语法。
本教程假设您正在使用Linux,所有示例都是在Linux平台上编写的。 但据观察,Linux和WIN32上的程序语法没有任何显着差异。 因此,您可以在WIN32上执行相同的步骤。
第一个Euphoria计划
让我们在脚本中编写一个简单的Euphoria程序。 在test.ex文件中键入以下源代码并保存。
#!/home/euphoria-4.0b2/bin/eui
puts(1, "Hello, Euphoria!\n")
让我们说,Euphoria解释器可以在/home/euphoria-4.0b2/bin/目录中找到。 现在运行这个程序如下 -
$ chmod +x test.ex # This is to make file executable
$ ./test.ex
这会产生以下结果 -
Hello, Euphoria!
这个脚本使用了一个带有两个参数的内置函数puts() 。 第一个参数表示文件名或设备号,第二个参数表示要打印的字符串。 这里1表示STDOUT设备。
Euphoria标识符
Euphoria标识符是用于标识变量,函数,类,模块或其他对象的名称。 标识符以字母A到Z或a到z开头,然后是字母,数字或下划线。
Euphoria不允许标识符中的标点符号,如@,$和%。
Euphoria是一种区分大小写的编程语言。 因此, Manpower和manpower是Euphoria中的两个不同的标识符。 例如,有效标识符是 -
- n
- color26
- ShellSort
- quick_sort
- a_very_long_indentifier
保留字 (Reserved Words)
以下列表显示了Euphoria中的保留字。 这些保留字不能用作常量或变量或任何其他标识符名称。 Euphoria关键字仅包含小写字母。
and | exit | override |
as | export | procedure |
break | fallthru | public |
by | for | retry |
case | function | return |
constant | global | routine |
continue | goto | switch |
do | if | then |
else | ifdef | to |
elsedef | include | type |
elsif | label | until |
elsifdef | loop | while |
end | namespace | with |
entry | not | without |
enum | or | xor |
Expressions
Euphoria允许您通过形成表达式来计算结果。 但是,在Euphoria中,您可以使用一个表达式对整个数据序列执行计算。
您可以像处理单个数字一样处理序列。 它可以复制,传递给子程序,或作为一个单元计算。 例如 -
{1,2,3} + 5
这是一个表达式,它添加序列{1,2,3}和原子5以得到结果序列{6,7,8}。 您将在后续章节中学习序列。
代码块
在学习Euphoria时,程序员遇到的第一个警告是没有大括号来指示过程和函数定义或流控制的代码块。 代码块由关联的关键字表示。
以下示例显示if...then...end if block -
if condition then
code block comes here
end if
Multi-Line Statements
Euphoria中的陈述通常以新的行结束。 然而,Euphoria允许在多行中写出单个语句。 例如 -
total = item_one +
item_two +
item_three
逃脱角色
可以使用反斜杠输入转义字符。 例如 -
下表是可以使用反斜杠表示法表示的转义或不可打印字符的列表。
反斜杠表示法 | 描述 |
---|---|
\n | Newline |
\r | Carriage return |
\t | Tab |
\\ | Backslash |
\" | 双引号 |
\' | 单引号 |
在Euphoria中的评论
编译器会忽略任何注释,并且不会影响执行速度。 建议在程序中使用更多注释以使其更具可读性。
评论文本有三种形式 -
注释以两个破折号开始并延伸到当前行的末尾。
多行格式注释保留在/*...*/内,即使它出现在另一行上。
您只能在程序的第一行使用以两个字符序列“#!”开头的特殊注释。
例子 (Examples)
#!/home/euphoria-4.0b2/bin/eui
-- First comment
puts(1, "Hello, Euphoria!\n") -- second comment
/* This is a comment which extends over a number
of text lines and has no impact on the program
*/
这会产生以下结果 -
Hello, Euphoria!
Note - 您可以使用以“#!”开头的特殊注释。 这告诉Linux shell你的文件应该由Euphoria解释器执行。