我有一个 HDF5 文件,我想从中读取 2 个数组。如何使用 do
block 表示法获取它们?
using HDF5
function myfunc()
h5open("path", "r") do f
a = read(f, "a")
b = read(f, "b")
end
# ... do some more processing of a, b
return a, b
end
如果我运行它,它会在 do block 之后出错并显示 a not defined
。我如何获取这些值以便我可以在之后处理它们,而不用将完整的计算包装在 do
block 中?
最佳答案
do
block 只是用于创建作为第一个参数传递的匿名函数的语法(在本例中为 h5open
)。就像常规函数一样,您需要从要在“外部”使用的匿名函数返回任何值:
# Function to mimic Base.open, HDF5.h5open etc
function open(f)
return f()
end
function g()
a, b = open() do
c = "hello"
d = "world"
return c, d # returns from the "do"-anonymous function
end
return a, b
end
关于scope - 如何在 Julia 中获取 `do` block 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64651377/