Variables with initializers----Go变量的初始化

118 阅读1分钟

原文

A var declaration can include initializers, one per variable.

If an initializer is present, the type can be omitted; the variable will take the type of the initializer.

代码

package main

import "fmt"

var i, j int = 1, 2

func main() {
	var c, python, java = true, false, "no!"
	fmt.Println(i, j, c, python, java)
}

翻译

var关键字可以声明变量,也可以在声明的时候初始化这个变量
如果声明变量的同时,初始化了这个变量,那么这个变量的类型可以忽略,因为go能根据你初始化的数据来推断这个类型

总结

Go声明变量的形式

var 变量名字 变量类型 = 初始化的数据

例子:
    var pageSize,pageNumber,count int = 0,0,9
    但是这种做法有个问题啊,就是var修饰的这几个变量类型都得一样
    
    var userName,age,birthday = "root",89,time.Now()
    这种做法,编译器会根据后面的数值来推断前面变量的类型,但是还是有个缺点,就是得带有初始化数据
    
    var(
        userName string,
        age int,
        birthday time.Time,
        money double,
    )
    
    这种最好,看着也简洁,而且可以初始化,也可以不初始化,推荐这种形式

刚开始学习Go的时候,对var关键字一直不是很理解,其实,后面才明白var就是个形容词,修饰词语,var的意思是说,后面的 都是变量了,但是具体什么类型还是按照Go的习惯(镜面声明,就是正常语言都是类型在前,变量在后,Go是镜面声明:变量在前, 类型在后)