哈哈

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"

常量

最新文章

  1. Java学习笔记14---使用标志位控制循环
  2. Java Netty 4.x 用户指南
  3. ef join 用法
  4. centos设置服务开机启动
  5. 用Random类输出验证码
  6. Redis事务的分析及改进
  7. android 软键盘不遮挡页面上的控件
  8. python 自动化之路 day 01.1 数据类型
  9. Linux学习笔记27——共享内存
  10. group by 汇总
  11. BZOJ 2024: [SHOI2009] 舞会 [容斥原理 高精度]
  12. objc:NSDateFormatter使用备忘
  13. javascript语言扩展:可迭代对象(2)
  14. [Solution] 885. Spiral Matrix Ⅲ
  15. Docker第二章:docker基础1--镜像,容器&仓库
  16. .net core实践系列之短信服务-Api的SDK的实现与测试
  17. scrapy - Request 中的回调函数不执行
  18. Java之集合(二十六)ConcurrentSkipListMap
  19. js面向对象设计之function类
  20. [51Nod 1773] A国的贸易

热门文章

  1. imshow(K)和imshow(K,[]) 的区别
  2. I.MX6 GPS Android HAL Framework 调试
  3. BZOJ4886: [Lydsy1705月赛]叠塔游戏(环套树森林&贪心)
  4. Spring的JDBC Template
  5. C#修改注册表
  6. 【转】让开发变得简单一点- Visual Studio 2010几个让人印象深刻的新功能
  7. 虚拟化环境下的CentOS7网络环境存在的问题
  8. .NET泛型解析(上)
  9. oracle数据库启动时出现ORA-01157和ORA-01110问题
  10. 黄聪:Windows 64位系统中安装Android SDK“系统找不到指定的文件Java.exe”解决方法