'da tanımlanmamışsa atama Yalnızca bir değişken tanımlanmamışsa (veya falsi) bir değişkene atanmak için basit Julia sözdizimi var mı? Ruby'nin x ||= NEW_VALUE
gibi bir şeyi kastediyorum. x || x=NEW_VALUE
'u denedim ancak bir hata attı. Kolay sözdizimini engelleme, bir değişken tanımlanmış olup olmadığını kontrol etmek için hangi işlevi kullanabilirim?Sadece Julia
13
A
cevap
24
isdefined
işlevini kullanabilirsiniz: isdefined(:x) || (x = NEW_VALUE)
.
2
Bu küçük rahatsızlık ile başa çıkmak için bir makro hazırladım. Çoğaltma olarak O
macro ifund(exp)
local e = :($exp)
isdefined(e.args[1]) ? :($(e.args[1])) : :($(esc(exp)))
end
:
julia> z
ERROR: UndefVarError: z not defined
julia> @ifund z=1
1
julia> z
1
julia> z=10
10
julia> @ifund z=2
10
julia> z
10
enterpolasyon bir örneği:
julia> w
ERROR: UndefVarError: w not defined
julia> w = "$(@ifund w="start:") end"
"start: end"
julia> w
"start: end"
Ancak, kapsamı hatırlamak (y
kapsamında olduğu için döngü):
julia> y
ERROR: UndefVarError: y not defined
julia> for i=1:10 y = "$(@ifund y="") $i" end
julia> y
ERROR: UndefVarError: y not defined
Let Çalışırsa, biliyorum. Merak ediyorum, çünkü makrolarla yaptığım ilk alıştırma.
İlgili konular
- 1. Julia
- 2. Julia
- 3. Julia
- 4. Julia
- 5. Julia
- 6. julia
- 7. Julia-vim'deki Julia sözdizimi vurgusu
- 8. Julia: Oluşturucu
- 9. Julia dil:
- 10. Julia dataframe tüm satırı
- 11. Julia cinsinden getattr() nedir
- 12. Julia: Verileri başka bir işlemciye kopyalamak için: Julia
- 13. Julia API/Belgeleme Üretimi
- 14. Julia makrolar: @__FILE__ @__LINE__
- 15. Julia dizisinden çok seçenek
- 16. Yavaş Julia Başlatma Süresi
- 17. Unzip bir Julia
- 18. Julia değeri yok
- 19. Denklemlerin doğrusal olmayan sistemi Julia
- 20. Julia içinde Paket dizinini değiştir
- 21. Julia cinsinden yaprak türünün anlamı
- 22. Julia çok boyutlu dizi türleri?
- 23. Julia bir tek çizgi fonksiyonu
- 24. Julia işlev argüman türü def
- 25. Julia TCP sunucusu ve bağlantısı
- 26. Julia makrosunun yöntemlerini nasıl edinebilirim?
- 27. Julia: Boş bir vektöre ekle
- 28. Çalışma zamanı türü hatalarından kaçınmak için Julia (julia-lang) kodu istatistiksel olarak analiz edilebilir mi?
- 29. Julia, bir dosya yerine bir akıştan okunabilir
- 30. Julia @ dönüş ifadesiyle döngü için para birimi