2014-11-11 45 views
7

phép nói rằng tôi gán một kiểu Person trong Julia:loại Định nghĩa lại trong Julia: định nghĩa lại không hợp lệ của liên tục

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) 

nào sẽ ra với chức năng:

Name: Ted Male: true 
Age: 55.0 Children: 0 

Sau đó, tôi thay đổi các tính năng cho loại hình Person nơi tôi đã thêm danh mục mới vào loại eyes

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


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

Nếu tôi chạy hàm bây giờ tôi gặp lỗi

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

Cách tốt nhất để giải quyết vấn đề này khi phát triển mã mới là gì? ngoài việc tạo mô-đun như được đề xuất trong số julia FAQ

+1

Tại sao bạn không muốn tạo mô-đun? Là hàm [workspace()] (http://docs.julialang.org/en/release-0.3/stdlib/base/#Base.workspace) để xóa module 'Main' phù hợp với những gì bạn đang tìm kiếm ? –

+0

@ToivoHenningsson Có đó là những gì tôi đang tìm kiếm. Bạn phải thêm nó ở trên kịch bản của bạn. Bạn có thể đặt nó trong câu trả lời và tôi sẽ kiểm tra nó đi. Cảm ơn! – ccsv

+0

Điều này đặc biệt bực bội khi chỉnh sửa mã trong [JuliaBox] (https://www.juliabox.org/), trong đó chạy lại một ô xác định một kết quả Kiểu trong một lỗi ...:/ – NHDaly

Trả lời

8

Bạn có thể sử dụng chức năng workspace() để xóa mô-đun Main nếu bạn không muốn đặt mã trong mô-đun riêng của nó.

+1

Chỉ có thể xác định một định nghĩa duy nhất cho loại người? Vì vậy, việc khai báo cho người có thể là 'undefine Person' 'loại Person ... end'? – NHDaly

+0

Xin lỗi, không. Nhưng làm cho một mô-đun cho mã thử nghiệm của bạn thực sự là một cách khá tiện dụng để có thể tải lại nó mà không xóa tất cả mọi thứ, tôi nghĩ rằng đó sẽ là giải pháp tốt nhất nếu bạn có ví dụ loại bỏ loại. –

+0

Bạn có thể tạo các mô-đun riêng biệt bên trong một tệp 'ipynb' duy nhất không? – NHDaly

Các vấn đề liên quan