Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop Julia中重新定义类型:常量的重新定义无效_Oop_Types_Julia - Fatal编程技术网

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

Oop Julia中重新定义类型:常量的重新定义无效,oop,types,julia,Oop,Types,Julia,假设我在Julia中指定了一个类型Person: 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, "

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

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)
它将与函数一起输出:

Name: Ted Male: true
Age: 55.0 Children: 0
然后我修改了type
Person
的特性,在这里我向type
eyes

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


ted = Person("Ted",1,55,0,brown)
如果我现在运行这个函数,我会得到一个错误

Error evaluating REPL:
invalid redefinition of constant Person
 in include_string at loading.jl:97

在开发新代码时,解决这个问题的最佳方法是什么?除了按照

中的建议制作模块外,如果您不想将代码放入自己的模块中,还可以使用该功能清除主模块。

为什么不制作模块?清除
模块的功能是否更符合您的要求?@ToivoHenningsson是的,这就是我要找的。您必须将其添加到脚本上方。你可以把它写在答案里,我来核对一下。谢谢这对于在中编辑代码尤其令人沮丧,因为重新运行定义类型的单元格会导致错误…:/这似乎在不断变化(例如,请参阅)。Review.jl()似乎是当前处理此问题的流行方式。修复julia编译器实际上是“开发新代码时解决此问题的最佳方法是什么?”的最佳答案。是否可以只为类型Person定义一个定义?所以Person的声明可以是
取消定义Person
类型Person。。。结束
?抱歉,没有。但是为您的测试代码创建一个模块确实是一个非常方便的方法,可以在不清除所有内容的情况下重新加载它,我认为如果您删除了该类型,这将是最好的解决方案。您能在单个
ipynb
文件中创建单独的模块吗?模块根本不与文件绑定,当然。这在最近版本的《朱莉娅》中被删除了