gpt4 book ai didi

julia - 参数中的 TypeError : in Type, 是什么意思,预期类型在 Julia 中得到了 xyz 意思

转载 作者:行者123 更新时间:2023-12-02 09:04:08 25 4
gpt4 key购买 nike

我正在尝试处理一些代码,这是我遇到的错误。

TypeError: in Type, in parameter, expected Type got xyz

任何人都可以向我解释理论上会导致这种情况发生的原因吗?此错误消息对我没有任何帮助。谢谢!

最佳答案

出现此错误的一种方法如下。假设您已经定义了一个(非平凡的)类型 XYZ:

julia> struct XYZ
x :: String
end

和这种类型的一个实例:

julia> xyz = XYZ("foo")
XYZ("foo")


您可以使用 typeof 函数获取对象 xyz 的类型(即 XYZ):

julia> typeof(xyz)
XYZ


同样的方法可以得到XYZ本身的类型:

julia> typeof(XYZ)
DataType

但是,这将为所有类型返回 DataType,这在想要分派(dispatch)某个类型的类型时不是很有用。对于这些情况,存在 Type "singleton type" .我想我也看到它被称为“伪类型”,我觉得这很容易理解:一切都像 XYZ 类型本身就是 Type{XYZ} 类型一样工作:

julia> XYZ isa Type{XYZ}
true

julia> f(::Type{XYZ}) = 42
f (generic function with 1 method)

julia> f(XYZ)
42


但是,有一件事您不能做:以这种方式构建本身不是类型的对象的伪类型:

julia> Type{xyz}
ERROR: TypeError: in Type, in parameter, expected Type, got XYZ
Stacktrace:
[1] top-level scope at REPL[3]:1


总而言之,您可能在对象 xyz 上使用了类似 Type{xyz} 的东西,而您真正想要的是以下之一:

  • Type{XYZ} 指类型 XYZ 本身的(伪)类型
  • typeof(xyz) 获取对象类型 xyz

关于julia - 参数中的 TypeError : in Type, 是什么意思,预期类型在 Julia 中得到了 xyz 意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60441140/

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