Go基础语法part1 | 青训营笔记

57 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

1. go语言简介

Go语言由来自Google公司的Robert GriesemerRob PikeKen Thompson三位大牛于2007年9月开始设计和实现,然后于2009年的11月对外正式发布。语言及其配套工具的设计目标是具有表达力,高效的编译和执行效率,有效地编写高效和健壮的程序。

Go语言有着和C语言类似的语法外表,和C语言一样是专业程序员的必备工具,可以用最小的代价获得最大的战果。 但是它不仅仅是一个更新的C语言。它还从其他语言借鉴了很多好的想法,同时避免引入过度的复杂性。 Go语言中和并发编程相关的特性是全新的也是有效的,同时对数据抽象和面向对象编程的支持也很灵活。 Go语言同时还集成了自动垃圾收集技术用于更好地管理内存。

Go语言尤其适合编写网络服务相关基础设施,同时也适合开发一些工具软件和系统软件。 但是Go语言确实是一个通用的编程语言,它也可以用在图形图像驱动编程、移动应用程序开发 和机器学习等诸多领域。目前Go语言已经成为受欢迎的作为无类型的脚本语言的替代者: 因为Go编写的程序通常比脚本语言运行的更快也更安全,而且很少会发生意外的类型错误。

Go语言还是一个开源的项目,可以免费获取编译器、库、配套工具的源代码。 Go语言的贡献者来自一个活跃的全球社区。Go语言可以运行在类UNIX系统—— 比如LinuxFreeBSDOpenBSDMac OSX——和Plan9系统和Microsoft Windows操作系统之上。 Go语言编写的程序无需修改就可以运行在上面这些环境。

2.基础语法

2. 1 打印一个hello world!

package main
​
import "fmt"func main() {
    fmt.Println("Hello, World")
}

2.2 变量

var声明语句可以创建一个特定类型的变量,然后给变量附加一个名字,并且设置变量的初始值。变量声明的一般语法如下:

var 变量名字 类型 = 表达式
2.3.1. 简短变量声明

在函数内部,有一种称为简短变量声明语句的形式可用于声明和初始化局部变量。它以“名字 := 表达式”形式声明变量,变量的类型根据表达式来自动推导。

i := 100                  // an int
var boiling float64 = 100 // a float64
var names []string
var err error
var p Point

2.3 条件语句

go语言里面的if else写法和C或者C++类似。不同是if后面没有括号。如果写括号,那么在保存的时候你的编辑器会自动把你去掉。另外,Go里面的if必须后面接大括号,就是你不能像C或者C++一样,直接把if里面的语句同一行。

2.4 循环

在go里面没有while循环、do while循环,只有唯一的一种for循环。最简单的for循环就是在for后面什么都不写,代表一个死循环。循环途中你可以用break跳出,也可以使用经典的C循环.这中间三段,任何一段都可以省略。在循环里面,你可以用 break或者continue来跳出或者继续循环,

for init; condition; post { }
  • init: 一般为赋值表达式,给控制变量赋初值;
  • condition: 关系表达式或逻辑表达式,循环控制条件;
  • post: 一般为赋值表达式,给控制变量增量或减量。

for语句执行过程如下:

  • 1、先对表达式 1 赋初值;

  • 2、判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。

    for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

    for key, value := range oldMap {
        newMap[key] = value
    }
    

    以上代码中的 key 和 value 是可以省略。

    如果只想读取 key,格式如下:

    for key := range oldMap
    

    或者这样:

    for key, _ := range oldMap

    如果只想读取 value,格式如下:

    for _, value := range oldMap