go变量定义、变量交换、匿名变量

简介: go变量定义、变量交换、匿名变量

一、变量定义

package main
 
//导入包
import "fmt"
 
func main() {
  //定义变量:var 变量名 变量类型
  var name string
  //定义多个变量
  var (
    age     int
    address string
  )
  fmt.Println(name, age, address)
  //定义变量并赋值
  var name2 string = "zhangsan"
  //;=自动推导类型
  age2 := 18
  fmt.Println(name2, age2)
  //输出变量,类型,内存地址
  fmt.Printf("name2:%s,类型%T,内存地址:%p \n", name2, name2, &name2)
  fmt.Printf("age2:%d,类型%T,内存地址:%p  \n", age2, age2, &age2)
 
  //输入内容
  fmt.Println("hello,world.")
}
 0
zhangsan 18
name2:zhangsan,类型string,内存地址:0xc00005a250
age2:18,类型int,内存地址:0xc0000160c8
hello,world.

二、变量交换

package main
 
import "fmt"
 
//变量交换
func main() {
  a := 1
  b := 2
  fmt.Println(a, b)
  a, b = b, a
  fmt.Println(a, b)
}
1 2
2 1

三、匿名变量

package main
 
import "fmt"
 
// _表示匿名变量,赋值给匿名变量的值将会被抛弃
//匿名变量不分配内存,不占用内存,可以多次声明使用
func main() {
  //只接收一个返回值
  a, _ := test()
  //只接收一个返回值
  _, b := test()
  fmt.Println(a, b)
}
 
/**
返回值为两个
*/
func test() (int, int) {
  return 100, 200
}
100 200

四、局部变量与全局变量

package main
 
import "fmt"
 
//局部变量与全局变量
var name = "zhangsan"
var age = 25
 
func main() {
  //局部变量
  var addr = "china"
  //局部变量可以覆盖全局变量
  var age = 26
  fmt.Println(name, age, addr)
  test()
}
 
func test() {
  fmt.Println(name, age)
}
zhangsan 26 china
zhangsan 25
相关文章
|
1月前
|
JSON 运维 Go
Go 项目配置文件的定义和读取
Go 项目配置文件的定义和读取
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
1天前
|
安全 Go C语言
Go常量的定义和使用const,const特性“隐式重复前一个表达式”,以及iota枚举常量的使用
这篇文章介绍了Go语言中使用`const`定义常量的方法,包括常量的特性“隐式重复前一个表达式”,以及如何使用`iota`实现枚举常量的功能。
|
1月前
|
Go API
Go - 统一定义 API 错误码
Go - 统一定义 API 错误码
45 9
|
1月前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
|
28天前
|
安全 Go
|
28天前
|
自然语言处理 Go 开发者
深入理解Go语言中的变量作用域
【8月更文挑战第31天】
13 0
|
28天前
|
编译器 Go 开发者
|
1月前
|
消息中间件 缓存 API
go-zero微服务实战系列(三、API定义和表结构设计)
go-zero微服务实战系列(三、API定义和表结构设计)
|
3月前
|
Go
go结构体的定义
go结构体的定义