gpt4 book ai didi

functional-programming - 如何在 julia 中传递函数类型安全

转载 作者:行者123 更新时间:2023-12-03 22:01:10 31 4
gpt4 key购买 nike

比方说,我想将一个函数传递给另一个函数:

function foo()
return 0;
end
function bar(func)
return func();
end
print(bar(foo));

但是您可以使函数类型安全:
function func(t::Int)
print(t);
end
func(0); #produces no error
func("Hello world"); #produces an error

我没有发现,我如何将两者结合起来,这意味着,我如何明确定义 bar 的参数, 喜欢 func , 是一个函数,可能具有某些输入/输出参数类型。

在此先感谢您的帮助。

最佳答案

函数的类型为 Function .您可以轻松检查:

julia> foo() = 1;

julia> T = typeof(foo)
typeof(foo)

julia> supertype(T)
Function

julia> foo isa Function
true

这不一定涵盖所有可调用类型,因为您可以使任何类型可调用:
julia> struct Callable end

julia> (::Callable)(x::Number) = x + one(x)

julia> callable = Callable()
Callable()

julia> callable(5)
6

julia> callable isa Function
false

关于functional-programming - 如何在 julia 中传递函数类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59391715/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com