ifelse中不存在的逻辑怎么写

image
这种情况改怎么改写呢

就是我不确定a有多少元素,如果a有第三个元素,我就取出,但是我发现用ifelse不行

if

julia> if length(a)>3
       print(a[3])
       else 
       print(0)
       end
0

我是想写在一个语句里,还能有别的方式么,if太长了,不能整合到单行代码,才用ifelse的

julia> length(a) >3 && a[3] || 0
0

这个ok,非常感谢

image
还是不行,假设我数组值满足的时候就会有int和bool在一个式子里,还是会报错

image
解决了

ifelse 的两个参数都会被求值,相应的,不会生成分支语句。主要有两个用途:

  • 两个参数都需要求值的情况
  • 在循环当中减少分支以提高性能

题主的情况应该不适用于上面的情况,直接用三目运算符就行了

length(a) > 3 ? a[3] : 0
7 个赞