Euphoria - 基本语法

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 是一种区分大小写的编程语言。 因此 Manpowermanpower 在 Euphoria 中是两个不同的标识符。 例如,有效标识符是 −

  • n
  • color26
  • ShellSort
  • quick_sort
  • a_very_long_indentifier

保留字

以下列表显示了 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

表达式

Euphoria 允许您通过形成表达式来计算结果。 然而,在 Euphoria 中,您可以使用一个表达式对整个数据序列执行计算。

您可以像处理单个数字一样处理序列。 它可以被复制、传递给子例程或作为一个单元进行计算。 例如 −

{1,2,3} + 5

这是一个将序列 {1, 2, 3} 和原子 5 相加得到结果序列 {6, 7, 8} 的表达式。 您将在后续章节中学习序列。

代码块

程序员在学习 Euphoria 时遇到的第一个警告是,没有大括号来指示过程和函数定义或流程控制的代码块。 代码块由关联的关键字表示。

以下示例显示 if...then...end if 块 −

if condition then
   code block comes here
end if

多行语句

Euphoria 中的语句通常以换行结束。 然而,Euphoria 确实允许在多行中编写一条语句。 例如 −

total = item_one + 
   item_two + 
   item_three

转义字符

可以使用反斜杠输入转义字符。 例如 −

下表是可以用反斜杠表示法表示的转义字符或不可打印字符的列表。

反斜杠表示法 描述
\n 换行符
\r 回车
\t 制表符
\\ 反斜杠
\" 双引号
\' 单引号

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!

注意 − 您可以使用以"#!"开头的特殊注释。 这会通知 Linux shell 您的文件应该由 Euphoria 解释器执行。