Go 快速入门指南 - 类型和运算符优先级

常量生成器

关键字 iota, 创建一系列相关的值,省略逐个定义。

语法规则

const (
    常量1 [常量类型] = iota
    常量2
    常量3
    常量4
    常量5
    ...
)

例子

package main

const (
    Sunday int = iota
    Monday      // 1
    Tuesday     // 2
    Wednesday   // 3
    Thursday    // 4
    Friday      // 5
    Saturday    // 6
)

// $ go run main.go
// 输出如下 
/**
  0
  1
  2
  3
  4
  5
  6
*/

在上面的声明中,Sunday 的值为 0, Monday 的值为 1, 以此类推。

自定义类型

关键字 type, 主要用来对同一种类型进行抽象。

语法规则

type 自定义类型名称 具体类型

# 例子
type Number       int

同时定义多个自定义类型

package main

type (
    Number int
    Name string
    Has bool
)

嵌套定义

可以基于已有的自定义类型,定义一个新的自定义类型。

package main

type (
    Number int
    Name string
    Has bool
)

type Number2 Number

使用规则

和变量使用规则一样。

package main

type (
    Number int
    Name string
    Has bool
)

func main() {
    var x Number = 1024
    var n Name = "abc"
    var h Has = true

    println(x)
    println(n)
    println(h)
}

// $ go run main.go
// 输出如下 
/**
    1024
    abc
    true
*/

运算符优先级

从高到低

  1. 1. ||

  2. 2. &&

  3. 3. <- (通道操作符,后面会讲到,暂时先忽略)

  4. 4. == != < <= > >=

  5. 5. + - | ^

  6. 6. * / % << >> & &^

  7. 7. ^ !

最佳实践

通过使用括号来提升某个表达式的运算优先级,提高代码可读性。

例子

package main

func main() {
    println(((1+2)*3+3)/4 + 5)
}

// $ go run main.go
// 输出如下 
/**
    8
*/

联系我

公众号

posted @ 2022-12-22 16:13  洋芋土豆  阅读(49)  评论(0)    收藏  举报