2
我剛剛瞭解了朱莉婭的世界年齡,並且必須說這個概念需要一段時間才能沉入其中。爲了幫助我接近它,在一些例子中能夠明確地看到世界年齡可能是有用的。是否有捷徑可尋?在Julia中獲得世界時代功能的簡單方法?
我想我可以以某種方式使我的例子,使他們總是遇到一個世界時代的錯誤,但我希望有一個不太令人難以置信的方式來實現這一點。
我剛剛瞭解了朱莉婭的世界年齡,並且必須說這個概念需要一段時間才能沉入其中。爲了幫助我接近它,在一些例子中能夠明確地看到世界年齡可能是有用的。是否有捷徑可尋?在Julia中獲得世界時代功能的簡單方法?
我想我可以以某種方式使我的例子,使他們總是遇到一個世界時代的錯誤,但我希望有一個不太令人難以置信的方式來實現這一點。
以下是黑客十歲上下,並且適用於0.6.1,但稍後可能會打破:
min_world(f) = (methods(f)).ms[1].min_world
macro cur_world()
:(min_world(x -> $(rand())*x))
end
而且它的工作原理如下:
julia> f(x) = 2x
f (generic function with 1 method)
julia> @cur_world()
21827
julia> g(x) = sqrt(x)
g (generic function with 1 method)
julia> @cur_world()
21829
julia> min_world(f)
21826
julia> min_world(g)
21828
採用世界年齡計數器在任何真實的代碼中聽起來都是錯誤的方式。
觸發世界年齡錯誤並檢查調用它的函數的堆棧跟蹤,以及如何獲取該信息以將其打印出來。 –
使用你的方法,我發現'ccall(:jl_get_world_counter,UInt,())'給你當前的世界時代,但我找不到他們閱讀功能世界時代的地方。 – gTcV