go之变量

注释

  单行注释

// 单行注释    等同于python   #

  多行注释

/*  */ 多行注释    等同于python   三引号

变量的定义和使用

  先定义再使用

  完整定义

package main

import "fmt"

func main() {
	//var 变量名 变量类型 = 变量值     定义并赋初值
	var name string = "zys"
	fmt.Println(name)
}

  类型推导

  虽然是类型推导,但是在定义阶段类型就固定了,后期不能改

package main

import "fmt"

func main() {
	//var 变量名  = 变量值     // 自动推到出变量是string类型
	//var name ="zys"
	//var age =19
	////var age int =99  // 一旦定义过,就不能再定义了
	//fmt.Println(name)
	//fmt.Println(age)
	////name="彭于晏"  // 修改变量的值
	////name=19  // 修改变量的值,类型固定,不能改
	//fmt.Println(name))
}

  简略声明

  := 表示定义并赋初值   用的多,但是不代表它没有类型

package main

import "fmt"

func main() {
	name := "zys"
	fmt.Println(name)
	name = "pyy"  // 重复定义
	fmt.Println(name)
}

  通过类型推导的方式同时定义多个变量

//var  name,age,hobby ="zys",19,"篮球"
//fmt.Println(name,age,hobby)

  通过完整定义的方式同时定义多个变量

//var name,age,hobby string = "zys","19","篮球"  
//fmt.Println(name,age,hobby)

  变量后面只能跟一种类型,不能多种。定义了string类型,age就不能是int类型

  通过简略声明的方式同时定义多个变量

//name,age,hobby:="zys",19,"篮球"
//fmt.Println(name,age,hobby)

  混合使用(用的比较多)

// 用括号括起来,第一种和第二种的混合,这种用的多,如果变量不赋初值,是没法类型推到
//var (
//	name  string = "zys"
//	age   int
//	hobby        = "篮球"
//	wife string     // 定义没有赋初值,为0
//)
//fmt.Println(name, age, hobby,wife)

  变量不能重复定义,但是可以使用 : 的形式,只要左侧有没定义过的,它算修改值

var name ="zys"
//name:="pyy"   重复定义报错
name,age:="pyy",19  // 只要左侧有没定义过的变量,这个就不错
fmt.Println(name,age)

  python 中所有类型都可以是None---》python一切皆对象(引用)--》地址里没放东西就是None,对着go中是nil,java中null

  注意点

    1.变量定义了必须使用,如果不用就报错,编译不通过

    2.变量在定义阶段,类型就固定了,后期不能改

    3.变量不能重复定义 无论用那种方式定义过,都不能再定义了,只能使用

变量命名规范

  命名规范

  Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:

  1.一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线

  2.大写字母和小写字母是不同的:Name和name是两个不同的变量

  3.关键字和保留字都不建议用作变量名 --->内置函数,包,关键字不能做变量名

  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

  内建常量

true false iota nil

  内建类型

int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error

  内建函数

make len cap new append copy close delete
complex real imag
panic recover

  注意

  go变量定义推荐用驼峰   AgeOfPerson    java中也是

  python中推荐下划线    age_of_person 

  go大小写有特殊含义

  go的文件命名推荐用下划线

  go变量定义推荐用驼峰,go的文件命名推荐用下划线

posted @ 2022-07-31 09:58  那就凑个整吧  阅读(21)  评论(0编辑  收藏  举报