只有在未定義(或虛假)的情況下才賦予變量,是否有簡單的Julia語法?我的意思是像Ruby的x ||= NEW_VALUE
。我嘗試過x || x=NEW_VALUE
,但它會引發錯誤。除了簡單的語法,我可以使用什麼函數來檢查變量是否被定義?只有在Julia中沒有定義的情況下才能分配
13
A
回答
24
您可以使用isdefined
功能:isdefined(:x) || (x = NEW_VALUE)
。
2
我準備了一個宏來處理這個小小的不便。
macro ifund(exp)
local e = :($exp)
isdefined(e.args[1]) ? :($(e.args[1])) : :($(esc(exp)))
end
然後在REPL:
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
插值的一個例子:但
julia> w
ERROR: UndefVarError: w not defined
julia> w = "$(@ifund w="start:") end"
"start: end"
julia> w
"start: end"
,記住的範圍(y
是在範圍爲環):
julia> y
ERROR: UndefVarError: y not defined
julia> for i=1:10 y = "$(@ifund y="") $i" end
julia> y
ERROR: UndefVarError: y not defined
讓我知道它是否有效。我很好奇,因爲這是我對宏的第一次練習。
相關問題
- 1. asihttprequest只有在沒有存儲的情況下才能下載
- 2. 只有在物品存在的情況下才定義變量
- 3. 只有在存在ruby的情況下才能下載文件
- 4. 只有在父類有類的情況下,jQuery才能解包
- 5. 只有在沒有隱私擴展的情況下才能強制IPv6連接?
- 6. 只有在LDAP中的父級匹配的情況下才能獲取子級?
- 7. 只有在沒有初始化的情況下才使用alloc才行嗎?
- 8. 只有在碰撞可見的情況下才能運行skaction
- 9. 只有在打開的情況下才能切換sidenav菜單
- 10. 只有在沒有數據的情況下才會顯示在區塊中
- 11. 只有在所有Ids適用的情況下才能從ManyToMany中選擇
- 12. 只有在不存在的情況下才能添加Java命名約定
- 13. 只有在兩個字段不匹配的情況下MySQL INSERT纔有效
- 14. 只有在特定的情況下才能打開無空間模式?
- 15. 只有在有選擇的情況下,才能刪除選擇的EOL空格
- 16. 只有在div沒有顯示的情況下才預先登記?
- 17. 只有在沒有運行的情況下才使用cron運行python腳本
- 18. bash shell腳本只有在沒有文件的情況下才刪除目錄
- 19. OutputCache - 只有在GET中沒有參數的情況下緩存
- 20. CSS字體只有在字體不存在的情況下才能下載
- 21. 只有在ListView不爲空的情況下才能使TextBox可見(有項目)
- 22. 只有在有互聯網連接的情況下nock才能工作嗎?
- 23. 只有在存在的情況下才能清空sql表(不能刪除)
- 24. 只有在成功的情況下才能在SenTest中運行代碼?
- 25. 只有在已經登錄的情況下才能在Magento中提交表格
- 26. 只有在沒有提供參數的情況下,htaccess才能將一個域重定向到另一個域?
- 27. 使用flock()來鎖定流只有在什麼情況下才能工作?
- 28. 只有在選中複選框的情況下才能獲取textfield的值
- 29. Javascript:只有在對象存在的情況下才使用JSON.parse
- 30. mongodb shell:只有在存在的情況下才更新文件