继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

洋鱼土豆
关注TA
已关注
手记 37
粉丝 0
获赞 0

常量生成器

关键字 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. &&
    1. <- (通道操作符,后面会讲到,暂时先忽略)
    1. == != < <= > >=
    1. + - | ^
    1. * / % << >> & &^
    1. ^ !

最佳实践

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

例子

package main

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

// $ go run main.go
// 输出如下 
/**
    8
*/
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP