这是我正在阅读的书中的一个例子:
volume = begin
len = 10
breadth = 20
height = 30
len * breadth * height
end
为什么我需要复合表达式?我可以写
volume = 10 * 20 * 30
或 volume = len * breadth * height
或为此编写一个函数或一个匿名函数......为什么我使用
begin
和 end
?或者可能更好的问题:当我是否使用它们,因为我猜上面的例子可能不是很好。
最佳答案
概括其他人所说的: block 允许您将语句列表(没有值的句法“短语”,即无法分配)转换为一个表达式(表示值并且可以分配的“短语” )。
例如,虽然你不应该,但你可以写
x = begin
s = 0
for i = 1:10
s += i^2
end
s
end
分配
x
循环操作的结果。 (限制序列中的最后一个语句实际上必须是一个表达式——否则,你将没有表达式的值。)一个合法的用例是生成的代码。例如,您可能会转
x = @somthing bla blub
进入
x = begin
(stuff involving bla and blub)
end
对用户透明,而
@something
可以自由生成任何语言结构。或者,如果您想编写一个主体较长的匿名函数(而不是使用
function
形式):f = x -> begin
...
end
关于julia - 为什么要复合表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60578596/