go 变量

为什么需要变量

  • 一个程序就是一个世界
  • 变量是程序的基本组成单位
package main

import "fmt"

func getVal(num1 int, num2 int) (int, int) {
	sum := num1 + num2
	sub := num1 - num2
	return sum, sub
}

func main() {
	sum, sub := getVal(30,60)
	fmt.Println("sum=", sum, "sub=", sub)
	sum2, _ := getVal(10,30) //只取出第一个返回值
	fmt.Println("sum=", sum2)
}

变量概念

变量相当于内存中一个数据存储空间的表示,可以把变量看作是一个房间的门牌号,通过门牌号可以找到房间,同理,通过变量名可以访问到变量值

变量使用

  • 声明变量(也叫:定义变量)
  • 变量赋值
  • 使用变量
package main

import "fmt"

func main() {
	//定义变量/声明变量
	var i int
	//给i赋值
	i = 10
	//使用变量
	fmt.Println("i=", i)
}

变量使用注意事项

  • 变量表示内存中的一个存储区域
  • 该区域有自己的名称( 变量名 ) 和 类型( 数据类型 )

golang变量使用的方式

  • 指定变量类型,声明后若不赋值,使用默认值
package main

import "fmt"

func main() {
	//指定变量类型,声明后若不赋值,使用默认值
	// int 默认值为 0
	var i int
	fmt.Println("i=", i)
}
  • 根据值自行判定变量类型( 类型推导 )
package main

import "fmt"

func main() {
	// 根据值自行判定变量类型( 类型推导 )
	var num = 10.11
	fmt.Println("num=", num)
}
  • 省略var,注意 := 左侧的变量不应该是已经声明过的,否则回导致编译错误
package main

import "fmt"

func main() {
	// 省略var  :=左侧的变量不应该是已经声明过的,否则回导致编译错误
	// :=  的  :不能省略,否则编译错误
	//下面的方式等价   var name string name = "tom"
	name := "tom"
	fmt.Println("name=", name)
}
  • 多变量声明
package main

import "fmt"

func main() {
	//一次性声明多个变量
	var n1, n2, n3 int
	fmt.Println("n1=", n1, "n2=", n2, "n3=", n3)
}
package main

import "fmt"

func main() {
	//一次性声明多个变量方式2
	var n1, name, n3 = 100, "tom", 888
	fmt.Println("n1=", n1, "name=", name, "n3=", n3)
}
package main

import "fmt"

func main() {
	//一次性声明多个变量方式3
	n1, name, n3 := 100, "tom", 888
	fmt.Println("n1=", n1, "name=", name, "n3=", n3)
}
  • 一次性声明多个全局变量( 在go中函数外部定义变量就是全局变量 )
package main

import "fmt"

	//定义全局变量
	var n1 = 100
	var n2 = 200
	var name = "jack"
	//一次性声明
	var (
		n3 = 300
		n4 = 900
		name2 = "mary"
	)
func main() {
	fmt.Println("n1=", n1, "n2=", n2, "name=", name, "n3=", n3, "n4=", n4, "name2=", name2)
}
  • 同区域的数据值可以在同一类型范围内不断变化( 很重要 )
package main

import "fmt"

func main() {
	var i int = 10
	i = 30
	i = 50
	fmt.Println("i=", i)
}
  • 变量=变量名+值+数据类型, 变量三要素

  • golang的变量如果没有赋初值,编译器会使用默认值

    • int 默认值 0
    • string 默认值 空串
    • 小数 默认值 0

变量的声明 初始化 赋值

  • 声明变量
var 变量名 数据类型
var a int
var num1 float32
  • 初始化变量
    在声明变量时就给值
var a int = 45
var b = 400
  • 变量赋值
var num int
num = 30

程序中 + 号的使用

  • 当左右两边都是数值型时,则做加法运算
  • 当左右两边都是字符串,则做字符串拼接
package main

import "fmt"

func main() {
	var i = 1
	var j = 2
	var r = i + j
	fmt.Println("r=", r)

	var str1 = "hello "
	var str2 = "world"
	var res = str1 + str2
	fmt.Println("res=", res)
}

标识符的命名规范

标识符概念

  • golang对各种变量, 方法, 函数等命名时使用的字符序列称为标识符
  • 凡是自己可以起名字的地方都叫标识符

标识符的命名规则

  • 由26个英文字母大小写, 0-9, _ 组成
  • 数字不能开头
  • golang中严格区分大小写
  • 下划线 _ 本身在go中是一个特殊的标识符,称为空标识符 可以代表任何其它的标识符,但是它对应的值会被忽略(比如: 忽略某个返回值) 所以仅能被作为占位符使用,不能作为标识符使用
  • 不能以系统保留关键字作为标识符(一共有25个)

标识符命名注意事项

  • 包名: 保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,不要和标准库冲突

  • 变量名, 函数名, 常量名: 采用驼峰法

var stuName string = "tom"
var goodPrice float32 = 1234.5
  • 如果变量名,函数名,常量名首字母大写,则可以被其它的包访问;
    如果首字母小写,则只能在本包中使用(注: 可以简单的理解成,首字母大写是公开的,首字母小写是私有的)
    在golang没有public, private 等关键字

main.go

package main

import (
	"fmt"
	"go_code/project01/model"
)

func main()  {
	var i int = 10
	i = 30
	fmt.Println("i=", i)
	// utils.go 的HeroName  包名.标识符
	fmt.Println(model.HeroName)
}

在这里插入图片描述

utils.go

package model

var HeroName string = "五行"

在这里插入图片描述

系统保留关键字

1 2 3 4 5
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

系统的预定义标识符

1 2 3 4 5 6
append bool byte cap close complex
complex64 complex128 uint16 copy false float32
float64 imag int int8 int16 uint32
int32 int64 iota len make new
nil panic uint64 print println real
recover string true uint uint8 uintprt
发布了97 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wuxingge/article/details/103976878