【问题标题】:Julia: Can conditional statements evaluate code on the same line?Julia:条件语句可以评估同一行的代码吗?
【发布时间】:2014-04-09 10:17:29
【问题描述】:

我现在正在阅读 Julia 手册,但遇到了第一个潜在的失望。

我喜欢能够简洁地编写条件语句。在 R 中我可能会写:

if (x==y) print("Hello")

但在 Julia 中,我认为我可能需要这样做

if x==y
  println("Hello")
end

或者x==y ? print("Hello") : print("") 这当然很傻。

Julia 中是否有允许单行条件语句的公式?

【问题讨论】:

  • 您不需要空打印。你可以选择 x==y ? print("Hello") : Nothing,但 @StefanKarpinski 的短路 && 运算符绝对更漂亮,并且被认为是 Julia 中执行此类操作的惯用方式。

标签: conditional julia


【解决方案1】:

你可以写成if x == y println("Hello") end,或者,你可以使用&&操作符的短路行为,写成x == y && println("Hello")。以一种非常相似的方式,检查某些条件并在不满足时抛出错误是相当常见的,这样写:size(A) == size(B) || error("size mismatch")

【讨论】:

  • 虽然对于if 语句的情况,通常在if x == y; println("Hello") end 中在条件和主体之间添加分号更安全,但解析器可能会将主体的某些部分解释为属于条件否则。
  • 我认为( x == y ) && println("Hello") 也可能更安全,如果有分配,那么( x == y ) && ( z = 1 ) 肯定比x == y && z = 1 更安全。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 2019-06-06
  • 1970-01-01
  • 2011-12-26
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多