只有在未定义(或虚假)的情况下才赋予变量,是否有简单的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:只有在存在的情况下才更新文件