序列( Sequences)
优质
小牛编辑
131浏览
2023-12-01
序列由括号{}中的对象列表表示,以逗号分隔。 序列可以包含原子和其他序列。 例如 -
{2, 3, 5, 7, 11, 13, 17, 19}
{1, 2, {3, 3, 3}, 4, {5, {6}}}
{{"Zara", "Ayan"}, 52389, 97.25}
{} -- the 0-element sequence
可以通过在方括号中给出元素编号来选择序列的单个元素。 元素编号从1开始。
例如,如果x包含{5,7.2,9,0.5,13},则x [2]为7.2。
假设x [2]包含{11,22,33},现在如果你要求x [2]你得到{11,22,33}并且如果你要求x [2] [3],你得到原子33 。
例子 (Example)
#!/home/euphoria-4.0b2/bin/eui
sequence x
x = {1, 2, 3, 4}
for a = 1 to length(x) do
printf(1, "value of x[%d] = %d\n", {a, x[a]})
end for
这里,length()是内置函数,它返回序列的长度。 以上示例产生以下结果 -
value of x[1] = 1
value of x[2] = 2
value of x[3] = 3
value of x[4] = 4
字符串
字符串只是sequence字符。 它可以以两种方式之一进入 -
(a) Using Double Quotes −
"ABCDEFG"
(b) Using Raw String Notation −
-- Using back-quotes
`ABCDEFG`
or
-- Using three double-quotes
"""ABCDEFG"""
您可以尝试以下示例来理解该概念 -
#!/home/euphoria-4.0b2/bin/eui
sequence x
x = "ABCD"
for a = 1 to length(x) do
printf(1, "value of x[%d] = %s\n", {a, x[a]})
end for
这会产生以下结果 -
value of x[1] = A
value of x[2] = B
value of x[3] = C
value of x[4] = D
字符串数组
可以使用Sequences实现字符串数组,如下所示 -
#!/home/euphoria-4.0b2/bin/eui
sequence x = {"Hello", "World", "Euphoria", "", "Last One"}
for a = 1 to length(x) do
printf(1, "value of x[%d] = %s\n", {a, x[a]})
end for
这会产生以下结果 -
value of x[1] = Hello
value of x[2] = World
value of x[3] = Euphoria
value of x[4] =
value of x[5] = Last One
Euphoria结构
可以使用Sequences实现结构,如下所示 -
#!/home/euphoria-4.0b2/bin/eui
sequence employee = {
{"John","Smith"},
45000,
27,
185.5
}
printf(1, "First Name = %s, Last Name = %s\n", {employee[1][1],employee[1][2]} )
这会产生以下结果 -
First Name = John, Last Name = Smith
有各种操作可以直接在序列上执行。 让我们详细看看它们 -
泌尿手术
当应用于序列时,实际上将一元运算符应用于序列中的每个元素以产生相同长度的结果序列。
#!/home/euphoria-4.0b2/bin/eui
sequence x
x = -{1, 2, 3, 4}
for a = 1 to length(x) do
printf(1, "value of x[%d] = %d\n", {a, x[a]})
end for
这会产生以下结果 -
value of x[1] = -1
value of x[2] = -2
value of x[3] = -3
value of x[4] = -4
算术运算
几乎所有算术运算都可以在序列上执行,如下所示 -
#!/home/euphoria-4.0b2/bin/eui
sequence x, y, a, b, c
x = {1, 2, 3}
y = {10, 20, 30}
a = x + y
puts(1, "Value of a = {")
for i = 1 to length(a) do
printf(1, "%d,", a[i])
end for
puts(1, "}\n")
b = x - y
puts(1, "Value of b = {")
for i = 1 to length(a) do
printf(1, "%d,", b[i])
end for
puts(1, "}\n")
c = x * 3
puts(1, "Value of c = {")
for i = 1 to length(c) do
printf(1, "%d,", c[i])
end for
puts(1, "}\n")
这会产生以下结果 -
Value of a = {11,22,33,}
Value of b = {-9,-18,-27,}
Value of c = {3,6,9,}
Command Line Options
用户可以将命令行选项传递给Euphoria脚本,并且可以使用command_line()函数将其作为序列访问,如下所示 -
#!/home/euphoria-4.0b2/bin/eui
sequence x
x = command_line()
printf(1, "Interpeter Name: %s\n", {x[1]} )
printf(1, "Script Name: %s\n", {x[2]} )
printf(1, "First Argument: %s\n", {x[3]})
printf(1, "Second Argument: %s\n", {x[4]})
这里printf()是Euphoria的内置函数。 现在,如果您运行此脚本如下 -
$eui test.ex "one" "two"
这会产生以下结果 -
Interpeter Name: /home/euphoria-4.0b2/bin/eui
Script Name: test.ex
First Argument: one
Second Argument: two