一个程序就是一个世界
变量是程序的基本组成单位
量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量(值)
基本语法: var 变量名 数据类型
var a int 这就是声明了一个变量,变量名是a
var num1 float32 这也声明了一个变量,表示一个单精度类型的小数,变量名是num1
在声明变量的时候,就给值
var a int = 45 这就是初始化变量a
使用细节:如果声明时就直接赋值,可省略数据类型
var b = 400
比如你先声明了变量:var num int //默认0
然后,再给值 num = 780;这就是给变量赋值
package main
import "fmt"
func main() {
//定义变量/声明变量
var i int
//给i 赋值
i = 10
//使用变量
fmt.Println("i=", i)
}
会输入 i= 10
1)-2)
3)-4)
package main
import "fmt"
func main() {
//golang 的变量使用方式1
//第一种:指定变量类型,声明后若不赋值,使用默认值
// int的默认值是0,其他数据类型的默认值后面马上介绍
var i int
// , 表示输出完前面的,接着输出后面的
fmt.Println("i=", i)
//第二种:根据值自行判定变量类型(类型推导)
var num = 10.11
fmt.Println("num=", num)
//第三种:省略var,注意:=左侧的变量不应该是已经声明过的,否则会导致编译错误
//下面的方式等价
//var name string
//name = "tom"
// := 的 :不能省略,否则错误
name := "tom"
fmt.Println("name=", name)
//一次性声明多个变量的方式1
var n1, n2, n3 int
fmt.Println("n1=",n1,"n2=",n2,"n3=",n3)
//一次性声明多个变量的方式2
var a1, name2, a3 = 100, "tom", 888
fmt.Println("a1=",a1,"name2=",name2,"a3=",a3)
//一次性声明多个变量的方式3,同样可以使用类型推导
s1, name3, s3 := 100, "tom~", 888
fmt.Println("s1=",s1,"name3=",name3,"s3=",s3)
}
> go run main.go
i= 0
num= 10.11
name= tom
n1= 0 n2= 0 n3= 0
a1= 100 name2= tom a3= 888
s1= 100 name3= tom~ s3= 888
5)全局变量:如何一次性声明多个全局变量
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, "name=",name, "n2=",n2)
fmt.Println("n3=",n3, "name2=",name2, "n3=",n3)
}
> go run main.go
n1= 100 name= jack n2= 200
n3= 300 name2= mary n4= 900
6)-7)
package main
import "fmt"
//变量使用的注意事项
func main() {
//该区域的数据值可以在同一类型范围内不断变化,下面执行结果是i= 50
//不能改变数据类型
var i int = 10
i = 30
i = 50
fmt.Println("i=",i)
}
//变量在同一个作用域(在一个函数或者在代码块)内不能重名
// var i int = 27 在同一个作用域再定义i 就会报错
// i := 29 在同一个作用域再定义i 就会报错
1)当左右两边都是数值型时,则做加否运算
2)当左右两边都是字符串,则做字符串拼接
package main
import "fmt"
//演示golang中+的使用
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)
}
> go run main.go
r= 3
res= helloworld