Golang从零开始(二):命名规范、变量和常量

4,519 阅读2分钟

这是 Go 零基础的第二篇,主要是说说 Go 的命名规范、变量和常量。

命名规范

Go 语言中,任何标识符(变量,常量,函数,自定义类型等)都应该满足以下规律:

  • 连续的字符或数字组成。
  • 以字符或下划线开头。
  • 不能和 Go 关键字冲突。

关键字

Go 语言总共有25个关键字。如下:

break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var

那么根据以上几点我们来看看哪些命名是合法的

foo  #合法
foo1 #合法
_foo #合法
变量 #合法 但不建议使用中文命名

1foo #不合法
1 #不合法
type #不合法
a+b #不合法

变量

在 Go 语言中,声明变量的一般形式是使用 var 关键字:var identifier type。例如:

var a int 
var b bool
var str string

我们也可以这样声明:

var (
    a int
    b bool
    str string
)

这种因式分解关键字的写法一般用于声明全局变量。

当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。记住,所有的内存在 Go 中都是经过初始化的。

当然,声明与赋值(初始化)语句也可以组合起来。例如:

var a int = 15
var i = 5
var b bool = false
var str string = "Go says hello to the world!"


var (
    a = 15
    b = false
    str = "Go says hello to the world!"
    numShips = 50
    city string
)

此时,我们可以省略变量类型(type),因为 Go 编译器可以根据变量的值来自动推断其类型。

简短声明方式

变量在声明的时候如果有初始值,我们可以使用 := 的简短声明方式:

a := 1 // 声明 a 为 1 的整数

这种方式只能在函数里面使用,用于全局变量声明会报错。

常量

常量用于存储不会改变的数据。它的定义方式与变量类似。常量使用const关键字定义:const identifier [type] = value。常量定义满足如下规则:

  • 声明时必须赋值。
  • 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
  • 不能使用 := 声明。

例如:

const a = 64 

const (
  b = 4
  c = 0.1
)

const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6

const (
    Monday, Tuesday, Wednesday = 1, 2, 3
    Thursday, Friday, Saturday = 4, 5, 6
)

后记

本人只是 Go 语言初学者,文中可能有纰漏,欢迎大家评论区交流。