gpt4 book ai didi

constructor - 如果函数使用 convert (Julia),它是构造函数吗?

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

阅读BioSeq.jl的源码发现他们使用的函数是这样的:

aminoacid{T<:Number}(value::T) = convert(AminoAcid, value)

此函数通过执行转换创建类型为 AminoAcid 的新对象。此函数是否被视为构造函数(因此应命名为 AminoAcid 而不是 aminoacid)?

最佳答案

在功能上,是的,aminoacid 方法正在执行构造函数的工作。鉴于 0.4-dev 中的调用重载改进,这一点尤其正确,其中所有类型都非常相似 default constructor fallback to convert .

Julian 风格似乎正在远离这些小写构造函数,尤其是当它们只是进行转换时。参见示例 Issue #9155: in 0.4, is Symbol("foobar") canonical? .

关于何时使用小写方法 ( Comment by Steven G. Johnson on Interact.jl#17: lower case widget functions ),这是一个很好的经验法则:

The lower-case versions, like int(...), are things that are (a) more coercive in conversions (no InexactErrors) and (b) may not return the corresponding type. e.g. int([1.0, 3.7]) works and returns an array of integers. See also JuliaLang/julia#1470.

关于constructor - 如果函数使用 convert (Julia),它是构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568148/

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