gpt4 book ai didi

oop - Julia:在类型中嵌入函数的构造函数

转载 作者:行者123 更新时间:2023-12-04 18:06:16 25 4
gpt4 key购买 nike

我是 OOP 的新手。假设我有这样的类型和功能:

   type Person
name::String
male::Bool
age::Float64
children::Int

end

function describe(p::Person)
println("Name: ", p.name, " Male: ", p.male)
println("Age: ", p.age, " Children: ", p.children)
end


ted = Person("Ted",1,55,0)

describe(ted)

有没有办法将 describe 函数嵌入到类型中。例如,如果我输入这样的东西

ted.describe()

我会得到:

Name Ted Male true
Age 55.0 Children 0

最佳答案

我也是 Julia 的新手,前段时间也有同样的要求。

现在我会用下面的代码解决你的问题,
感谢来自
Understanding object-oriented programming in Julia – Objects-part 1 ,

我知道匿名函数不是很快,但我
认为开销对于“打印”功能来说还不错。

#!/usr/bin/env julia
mutable struct Person
name::AbstractString
male::Bool
age::Float64
children::Int
describe::Function
function Person(name,male,age,children)
this = new()
this.name = name
this.male = male
this.age = age
this.children = children
# anonymous functions are not known to be fast ;-)
this.describe = function() describe(this) end
this
end
end

function describe(p::Person)
println("Name: ", p.name, " Male: ", p.male)
println("Age: ", p.age, " Children: ", p.children)
end

ted = Person("Ted",1,55,0)
# describe(ted)
ted.describe()

然而正如 0xMB 所说:这不是 Julia 的方式。
但我喜欢 Ruby 的方法链调用系统,
所以我希望有一天会出现一个句法建议
轻松创建一些别名来创建这样的“成员函数”。

——莫里斯

关于oop - Julia:在类型中嵌入函数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800811/

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