Julia : "<:"符号是什么意思?

标签 julia

这在函数签名中意味着什么,例如:
convert(::Type{T}, z::Complex) where {T<:Real}

最佳答案

严格来说,应该区分谓词Base.:(<:) ,如@Saqib 的回答中所述,以及 <: 的语法用法用于描述约束。
这种语法用法可以出现在方法的类型参数声明中,以将类型变量限制为其他类型的子类型:

f(x::T) where {T<:Real} = zero(x)
这种情况的一种特殊情况是当您约束结构的类型参数( struct Foo{T<:Real} ... end )时——它约束生成的构造函数的方法,并允许类型构造函数仅应用于受约束的子类型。
另一方面,在类型参数之外,<:可用于将新类型声明为其他(必须是抽象的)类型的子类型:
struct Foo <: Real end
尽管这两种情况都符合子类型谓词的含义,但您不能用其他任意表达式替换它们(例如,您不能在 ... where {isreal(T)} 中写入 f )。

关于 Julia : "<:"符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53015450/

相关文章:

julia - 在 Julia 中访问数组中的一对行元素

recursion - 使用Julia中的元编程优化递归函数

struct - 如何在 Julia 中引用结构本身

julia - 如何在 Julia 中使用绘图创建大括号?

julia - 循环排列

keyboard - Julia 键盘中断

julia - 无法在 Julia : UndefVarError: head not defined 中获取数据帧的前 N ​​行

julia - 如何在 Julia Plots 中创建任意数量的子图

python - 如果 f-string 像 Julia 中可用的字符串格式?

plot - 如何使用 Plots.jl 缩放字体大小