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
  • 如果变量名,函数名,常量名首字母大写,则可以被其它的包访问;
    如果首字母小写,则只能在本包中使用(注: 可以简单的理解成,首字母大写是公开的(public),首字母小写是私有的(private))
    在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 = "五行"

在这里插入图片描述

系统保留关键字

12345
breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

系统的预定义标识符

123456
appendboolbytecapclosecomplex
complex64complex128uint16copyfalsefloat32
float64imagintint8int16uint32
int32int64iotalenmakenew
nilpanicuint64printprintlnreal
recoverstringtrueuintuint8uintprt
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuxingge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值