gpt4 book ai didi

function - 关于 Julia 函数参数语法的问题

转载 作者:行者123 更新时间:2023-12-04 15:42:47 25 4
gpt4 key购买 nike

考虑以下函数签名:function f(xs::AbstractVector{T},::Val{U},::Val{V}) where {T, U, V}。我理解 value types 的概念, 但我不确定我是否理解前置双冒号的含义,而且我似乎无法找到任何专门关于这个主题的信息。

在 C++ 中,类似的语法将确保名称的解析发生在全局而不是当前命名空间,但我不确定这是否适用于 Julia(如果适用,如何)。我可以推断这与类型有关,因为使用相同的语法来表示变量的类型,但是没有受让人的类型赋值意味着什么? TIA。

最佳答案

function f(xs :: AbstractVector{T}, ::Val{U}, ::Val{V}) where {T, U, V}

表示对f的调用必须分别传递AbstractVectorValVal三个类型的参数。但是,您仅为第一个参数 xs 捕获传递变量的。第二个和第三个参数的值未被捕获(在这种情况下,您并不真正需要它们,因为 Val 是单例类型)。但是您捕获类型 TUV,并且可以在函数体中引用它们。

关于function - 关于 Julia 函数参数语法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57155138/

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