在Julia中重新定义类型:对常量的重新定义无效

ccs*_*csv 11 oop types julia

假设我Person在Julia中指定了一个类型:

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)
Run Code Online (Sandbox Code Playgroud)

哪个将输出功能:

Name: Ted Male: true
Age: 55.0 Children: 0
Run Code Online (Sandbox Code Playgroud)

然后我修改了类型的功能,我在该类型Person中添加了一个新类别eyes

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


ted = Person("Ted",1,55,0,brown)
Run Code Online (Sandbox Code Playgroud)

如果我现在运行该功能,我会收到错误

Error evaluating REPL:
invalid redefinition of constant Person
 in include_string at loading.jl:97
Run Code Online (Sandbox Code Playgroud)

在开发新代码时,解决此问题的最佳方法是什么?除了按照朱莉娅常见问题解答中的建议制作模块

Toi*_*son 10

如果您不想将代码放在自己的模块中,可以使用workspace()函数清除Main模块.

  • 在Julia的最新版本中已将其删除 (2认同)