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

Mau*_*cio 2 compiler-construction language-design go

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

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

sep*_*p2k 10

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

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

我假设通过vals他意味着常量(val例如在Scala 中称为s).

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

const myValue = if condition { value1 } else { value2 }
Run Code Online (Sandbox Code Playgroud)

事实上,你必须这样做:

var myValue
if condition {
    myValue = value1
} else {
    myValue = value2
}
Run Code Online (Sandbox Code Playgroud)

因此,您需要使变量变为可变(使用var而不是const),这就是提出问题的人可能意味着什么.