Golang笔记之变量
2024-10-15 06:30:00
哈哈
package main // 关键字var 声明变量 类型信息放在变量名后
//声明一个int型变量
var v1 int //声明一个string类型
var v2 string //声明多个变量
var v3, v4 bool //[0 0 0 0 0 0 0 0 0 0] 数组
var v5 []int //数组切片
var v6 []int //声明结构体
var v7 struct {
f int
} // 声明指针
var v8 *int //声明map key为string类型,value是int类型
var v9 map[string]int // 匿名函数和闭包
var v10 func(a int) int //多个需要声明的变量放在一起
var (
name int
age string
)
声明变量
package main import "fmt" func main() {
//声明变量的初始化,var 可以省略写法
var v1 int =
//编译器可以自动算出v2的类型
var v2 =
//编译器自动算出v3的类型
//同时进行变量声明和初始化
v3 :=
fmt.Println(v1, v2, v3)
} // 出现在:= 左侧的变量 只能声明一次,不可重复
变量初始化
package main import "fmt" //声明之后再赋值
func main() {
var i int
i =
var j int
j =
//Go语言的多重赋值,如下代码交换i和j的变量
//go的多重赋值特性可以很明显的优化代码,相比c/c++
i, j = j, i
fmt.Println(i, j)
}
变量赋值
package main import "fmt" //使用强类型语言编程时,调用函数时为了获取一个值,却因为函数返回多个值,又得定义一堆变量
//可以使用多重返回和匿名变量来避免这些问题
func GetName() (firstname, lastname, nickname string) {
return "yu", "yuchao", "chaoge"
} //只想获得nickname,函数调用语句可以写
func main() {
//优化代码的清晰度
_, _, nickname := GetName()
fmt.Println(nickname) }
匿名变量
package main //声明go代码所属的包,包是go例最基本的分发单位,要生成可执行程序,必须名为main,且下面有个main()函数,作为执行起点 //导入本程序所以来的包,下列用到Println()函数,所以导入fmt
import "fmt" //不得在源代码中写入未使用的包,否则编译器会出错
//软件工程的设计哲学,强制左花括号 { 的放置位置
//函数名的大小写规则
func Compute(value1 int, value2 float64) (resule float64, err error) {
//函数体 fmt.Println(value1, value2)
return
} //main函数不能带参数,也不能定义返回值,命令行传入的参数存在os.Args变量中
func main() {
Compute(, )
}
代码解读
package main //常量是编译期间就已知,而且不可改变,可以是数值类型(整型、浮点型、复数)、布尔类型、字符串
const Pi float64 = 3.14159265358979323846 //无类型浮点常量
const Zero = 0.0 const (
//无类型常量
size int64 =
eof = -
) //常量多重赋值 u=0.0 v=3.0
const u, v float32 = ,
//无类型整型,字符串常量
const a, b, c = , , "foo"
常量
最新文章
- Java学习笔记14---使用标志位控制循环
- Java Netty 4.x 用户指南
- ef join 用法
- centos设置服务开机启动
- 用Random类输出验证码
- Redis事务的分析及改进
- android 软键盘不遮挡页面上的控件
- python 自动化之路 day 01.1 数据类型
- Linux学习笔记27——共享内存
- group by 汇总
- BZOJ 2024: [SHOI2009] 舞会 [容斥原理 高精度]
- objc:NSDateFormatter使用备忘
- javascript语言扩展:可迭代对象(2)
- [Solution] 885. Spiral Matrix Ⅲ
- Docker第二章:docker基础1--镜像,容器&;仓库
- .net core实践系列之短信服务-Api的SDK的实现与测试
- scrapy - Request 中的回调函数不执行
- Java之集合(二十六)ConcurrentSkipListMap
- js面向对象设计之function类
- [51Nod 1773] A国的贸易
热门文章
- imshow(K)和imshow(K,[]) 的区别
- I.MX6 GPS Android HAL Framework 调试
- BZOJ4886: [Lydsy1705月赛]叠塔游戏(环套树森林&;贪心)
- Spring的JDBC Template
- C#修改注册表
- 【转】让开发变得简单一点- Visual Studio 2010几个让人印象深刻的新功能
- 虚拟化环境下的CentOS7网络环境存在的问题
- .NET泛型解析(上)
- oracle数据库启动时出现ORA-01157和ORA-01110问题
- 黄聪:Windows 64位系统中安装Android SDK“系统找不到指定的文件Java.exe”解决方法