if作为表达式和if作为语句之间的区别

时间:2017-06-27 01:17:39

标签: go compiler-construction language-design

所以我在Go语言上观看了这个视频 - https://www.youtube.com/watch?v=p9VUCp98ay4,并且在6:50左右,一个人问一个关于他们为什么实现的问题,如果是语句而不是表达式。这两个实现有什么区别?据我所知,我从来没有必要改变我使用基于语言的条件的方式。

编辑:他的问题是什么意思“你需要价值而不是变数”?

1 个答案:

答案 0 :(得分:10)

表达式和语句之间的区别在于表达式生成一个值,因此可以在需要值的位置使用。因此,表达式可以用作变量的值,函数的参数或运算符的操作数。声明不能。

  

他的意思是什么"你需要价值而不是变量"在他的问题?

我假设val表示常量(例如Scala中称为val)。

如果if是表达式,您可以这样做:

const myValue = if condition { value1 } else { value2 }

实际上,你必须这样做:

var myValue
if condition {
    myValue = value1
} else {
    myValue = value2
}

所以你需要让你的变量变得可变(使用var而不是const),这就是问这个问题的人可能意味着什么。