# end
终止代码块或指示最大数组索引
# 语法
end
# 说明
end 是终止 for、while、try、if 语句的关键字。若没有 end 语句,则 for、while、try、if 和 会等待进一步输入。end 的每个实例与先前最近的未成对的 for、while、try、if语句配对使用。示例
end 还终止声明的函数。虽然它有时是可选的,但使用 end 可提高代码可读性。在下列情况下,需要使用 end:示例
- 如果文件包含多个函数,并且其中一个函数用 end 终止,则文件中的每个函数都必须用 end 终止;
- 如果文件包含具有一个或多个嵌套函数的函数,则该文件中的每个函数都必须用 end 终止;
- 如果脚本包含一个或多个局部函数,则文件中的每个函数都必须用 end 终止。
end 也表示数组的最后一个索引。例如,X[end] 是 X 的最后一个元素,X[3:end] 选择 X 的第三个到最后一个元素。
# 示例
终止条件语句和for循环
使用 end 关闭 if 语句和 for 循环。end 的第一个实例与 if 语句配对,第二个实例与 for 语句配对。
a = [0 0 1 1 0 0 0 1 0]
for k = 1:length(a)
if a[k] == 0
a[k] = 2
end
end
a
a = 1×9 Matrix{Int64}:
2 2 1 1 2 2 2 1 2
声明函数
在名为 average.jl 的文件中声明一个函数,并将其保存在当前文件夹中。使用 end 终止该函数。
function average(x)
ave = sum(x)/length(x)
end
该函数接受一个输入数组,计算其元素的平均值,并返回标量。从命令行调用该函数。
z = 1:99
ave = average(z)
ave = 50.0
访问向量的元素
创建向量 X。
x = 1:15;
访问 X 的第五个至最后一个元素。
collect(x[5:end])
ans = 11-element Vector{Int64}:
5
6
7
8
9
10
11
12
13
14
15
访问 X 的具有奇数索引的元素。
collect(x[1:2:end])
ans = 8-element Vector{Int64}:
1
3
5
7
9
11
13
15
访问矩阵的最后一行
使用 end 访问矩阵 A 的最后一行。
using TyMath
A = magic(3)
A = 3×3 Matrix{Int64}:
8 1 6
3 5 7
4 9 2
B = A[end,:]
B = 3-element Vector{Int64}:
4
9
2
# 提示
- 类可以重载 end 函数以实现特殊的行为。有关详细信息,请参见 end 作为对象索引;
- 虽然 end 有时在函数文件中是可选的,但使用它可以提高代码可读性。