2017-04-25 57 views
3

例如有人通過我可以在Julia中使用類型字段嗎?

type Bar 
    v::String 
end 

定義一個類型吧,我認爲v是一個糟糕的字段名,並且不希望直接改變它。 我想給該字段設置一個別名,例如value

我希望我可以這樣做alias Bar.v, :value,並得到了

julia> bar = Bar("the value") 

julia> bar.value 
"the value" 

我可以在朱莉婭做這種事?

+2

首選的方法不是直接訪問字段,而是定義一個訪問方法'value(b :: Bar)= b.val'。字段名稱可以看作是該類型的內部實現的一部分,不應該擔心。 – DNF

回答

3

這是目前不可能的。

我可以想象你能做到這一點的唯一方法是重載a.b字段訪問語法(getfield),你目前不允許這樣做。這裏有一個關於這個問題的長篇討論https://github.com/JuliaLang/julia/issues/1974但tldr它可能會在1.0之前實現。

+0

這個答案是正確的 - 目前這是不可能的。 – StefanKarpinski

+0

如果朱莉婭有這樣的功能,應該是真的做飯! – Yang

+0

事實上,我認爲有很多用例可能很酷,但是@DNF指出,定義訪問器方法對於頂級用法通常是需要的。 –

相關問題