Back to Learngo

README

translation/chinese/04-语句-表达式-注释/问题/01-statements/README.md

latest2.4 KB
Original Source

下面关于语句的描述哪个是正确的?

  1. 一个语句指示 Go 执行某些操作 正确
  2. 一个语句产生一个值
  3. 一个语句无法改变执行流

2: 一个语句不能产生一个值,但它可以间接的帮助产生一个值

3: 不,它可以

下面关于 Go 代码的执行顺序哪个是正确的?

  1. 从左到右
  2. 从上到下 正确
  3. 从右到左
  4. 从下到上

2: 是的,Go 的执行顺序是从上到下,一次一个语句

下面关于表达式的描述哪个是正确的?

  1. 表达式指示 Go 执行某些操作
  2. 一个表达式产生一个值 正确
  3. 表达式可以改变执行流

1: 不,语句可以

3: 不,只有语句可以

下面关于运算符的描述哪个是正确的?

  1. 运算符指示 Go 执行某些操作
  2. 运算符可以改变执行流
  3. 运算符可以组合表达式 正确

1: 不,语句可以

2: 不,只有语句可以

下面的程序为什么不起作用?

go
package main
import "fmt"

func main() {
    "Hello"
}
  1. "Hello"是一个表达式,它不能没有语句单独在一行 正确
  2. 去掉 “Hello” 的双引号,像这样: Hello
  3. 将 "Hello" 移到 main 函数外面

下面的程序可以运行吗?

go
package main
import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println(runtime.NumCPU()); fmt.Println("cpus"); fmt.Println("the machine")
}
  1. 可以运行: 可以用分号来分隔表达式
  2. 不能运行: 只能一行一个语句
  3. 可以运行: Go 会自动地在每条语句的后面添加分号 正确

1: 它可以运行,但不是这个原因,另外,表达式不能这样做

2: 确定吗?

3: 是的,无论是否有分号,Go 会自动的添加分号. 这些语句还是认为自己在不同的一行中

为什么下面的代码可以运行

go
package main
import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println(runtime.NumCPU() + 10)
}
  1. 运算符可以组合表达式 正确
  2. 语句可以和表达式一起使用
  3. 表达式可以返回多值

1: 是的, + 运算可以组合 runtime.NumCPU()10 表达式

2: 不对,不可以组合使用。例如,不能这样做:import "fmt" + 3. 一些语句需要表达式,但这不意味着语句和表达式可以组合使用

3: 对的,但不能解释上面代码为什么可以运行