Julia 的比较运算符和许多其他语言类似,不过为喜欢数学的人多准备了一些选项。
判断相等性时,运算符有==(相等)和!=或≠(不相等)。
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
此外,还有各种大于、小于运算符。
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
和 Julia 的许多情况一样,用一个合适的编辑器就能轻松输入这些数学符号。输入\ne、\le或\ge,再按TAB,就能得到≠、≤或≥。
上面的例子只用了数字,但在教学大纲的其他部分我们会看到,许多其他类型也有顺序,可以比较大小。
比较运算符可以连起来用,从而写出清晰简洁的语法:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
上面的例子等价于1 ≤ n && n ≤ 5。
if进行分支下面是if语句的完整形式:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
不需要写圆括号()或大括号{},缩进“只是”为了让代码更易读_(但可读性非常重要!)_。
elseif和else都是可选的,而且可以有多个elseif块。不过end是必需的。
if语句可以嵌套,不过为了可读性,你可以有意识地用好括号、缩进和注释。
if语句最短的形式大致是这样:
if n < 0
n = 0
end
提醒一下:只有求值结果为true或false的表达式才能用作条件。Julia 有意避开了“真值性”这类概念,所以零值、空字符串和空数组都_不_等同于false。
一种简单又常见的情况,是根据条件从两个值里挑一个。
和许多语言一样,Julia 有三元运算符,可以让这种写法更简洁。
语法是conditional ? value_if_true : value_if_false。
所以上面的例子可以改写成:
n = n < 0 ? 0 : n
编译器并不要求写括号,但括号可以让代码更易读。
match语句吗?目前基础语言里没有 match/case 结构。
简单的情况推荐用if..elseif..else。
如果需要像 Scala 那样复杂的模式匹配,Match.jl包很受欢迎。不过和大多数第三方包一样,Exercism 的测试运行器里并没有Match。