基础使用

// base.go  注释
package main  // 包名
import "fmt"  // 导入 func main() {
 fmt.Println("hello")
} // wrong:  fmt.Println("hello")

main 函数是程序的运行入口,如果没有 main 函数,可以通过导入方式供其他模块调用。

注意:不能直接在函数外直接使用 fmt.Println

运行项目:

go run base.go

也可以只编译:

go build base.go

编译以后可以直接运行可执行文件:

# linux
./base
# windows
base.exe

定义变量

定义变量不赋值:

func variableNoValue()  {
 var a int
 fmt.Println(a)
}

运行函数会打印 0,在 Go 中,定义了变量类型如果没有赋值,会给它一个 zero value 作为默认值。 不赋值时,必须指定参数类型。

定义变量赋值:

func variableInitValue() {
 var a int = 2
 var b string = "hello"
 fmt.Println(a, b)
}

当多个变量的类型相同时,可以放在一起定义,并规定类型,主要是方便。

func variableMultiValue() {
 var firstName, lastName string = "liu", "zhen"
 fmt.Println(firstName, lastName)
}

赋值时也可以不规定类型,由编译器自己决定类型:

func varialbeNoType() {
 var a, b = 3, "hello"
 fmt.Println(a, b)
}

:=

Go 为变量赋值提供了一种快捷方式, 但是这种用法只能再函数体内使用,不能直接再包内定义。这也是 Go 语言用得最多的一种定义变量的方式。

func variableQuick() {
 a, b := 5, "hello"
 fmt.Println(a, b)
} //wrong
// a, b := 5, "hello"

有时候需要在包内定义一系列的变量,可以用 var 分组:

var (
 a = 1
 b = "hello"
 c = true
)

变量总结

  • 函数体内优先使用 a := 5 定义变量,更简洁。
  • 变量可以规定类型,也可以不规定。
  • 变量不赋值时,必须指定类型。
  • 可以使用括号对 var 变量分组

写一个综合例子,一个包大致长这样:

package main // 包名
import "fmt" // 导入 var (
 a = 1
 b = "hello"
 c = true
) func main() {
 fmt.Println(c)
 variableNoValue()
 variableQuick() func variableNoValue() {
 var a int
 fmt.Println(a)
} func variableQuick() {
 a, b  := 5, "hello"
 fmt.Println(a, b)
}

最新文章

  1. Linux下怎么运行java程序
  2. 2016年Web前端面试题目汇总
  3. telnet与ssh有什么不同呀
  4. 26.68013 烧录方式 及iic生成
  5. HTML常用标签和属性大全
  6. NFC(3)Android上的NFC,开启NFC,3种NDEF数据
  7. javaMail邮件发送的简单实现
  8. margin:0 auto;不居中?
  9. 菜鸟Scrum敏捷实践系列(二)用户故事验收
  10. 架构之微服务(etcd)
  11. Oracle11g: datetime
  12. js斐波那契数列
  13. 通过setup.py安装项目dependencies
  14. CF 977E Cyclic Components
  15. 【Linux】【Jenkins】代码编译和执行过程中的问题汇总
  16. Xamarin.Android 使用ListView绑定数据
  17. app v2界面
  18. ASP.NET WebAPI 04 Model绑定
  19. 【文档】一、Mysql Binlog概述
  20. leetcode summary-section II

热门文章

  1. ql的python学习之路-day6
  2. Docker搭建代码检测平台SonarQube并检测maven项目
  3. ssh别名登录,非常适合从跳板机登录其他主机
  4. 在php文件中xml格式
  5. Vue刷新页面的三种方式
  6. 论文阅读:Reducing Transformer Depth On Demand With Structured Dropout
  7. form提交(图片,excel其他文件)
  8. Python 图像处理 OpenCV (4):图像算数运算以及修改颜色空间
  9. C语言基础知识(三)——指针
  10. Smarty模板引擎原理概述