go入门| 青训营笔记

106 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

go学习

go简介

**Go**(又称 **Golang**)是 [Google](https://baike.baidu.com/item/Google/86964) 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种[静态](https://baike.baidu.com/item/静态)[强类型](https://baike.baidu.com/item/强类型)、[编译型语言](https://baike.baidu.com/item/编译型语言/9564109)。Go 语言语法与 [C](https://baike.baidu.com/item/C/7252092) 相近,但功能上有:内存安全,[GC](https://baike.baidu.com/item/GC/66426)(垃圾回收),[结构形态](https://baike.baidu.com/item/结构形态/5942010)及 CSP-style [并发计算](https://baike.baidu.com/item/并发计算/9939802)。

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在LinuxMac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 来自百度百科

go语言关键字:

引导程序整体结构8个关键字:package、import、const、var、func、defer、go、return。 声明复合数据结构的4个关键字:struct、interface、map、chan。 控制程序结构的13个关键字:if、else;for、 range、break、continue;switch、select、type、case、default、fallthrough;goto。

内置数据类型标识符: 数值:

            整型(12个):byteintint8int16int32int64
​
                               uint uint8uint16uint32uint64uintptr
​
            浮点型:float32    float64
​
            复数:complex64complex128
​
字符和字符串型: string     rune 
​
接口型:error
​
布尔型:bool

内置函数: make、new、len、cap、append、copy、delete、panic、recover、close、complex、real、image、print、println。 常量标识符: true、false:表示bool类型的两个常亮值。 iota://用在连续枚举类型的声明中。 nil: //指针,引用类型的变量的默认值是nil 空白标识符: _ Go 语言结构:

创建个Hello World:

其基本组成有:

1.包声明

2.引入包

3.函数

4.变量

5.语句 & 表达式

6.注释

eg:

package main

import "fmt"

func main() {

fmt.Println("Hello, World!") }

/.../

(1)第一行代码 package main 定义了包名。非注释第一行必须指明这个文件属于哪一个包,每个 Go 应用程序都包含一个名为 main 的包。

(2) import "fmt" 使编译器知道这个程序需要使用什么 包这里是fmt包,fmt 包是实现了格式化 IO的函数。

(3)func main()函数是程序开始执行的函数,每个程序必须包含这个函数,通常都是程序启动后第一个执行的函数。

(4)/ ... / 一般//里面写注释内容。

(5) fmt.Println(...) 将字符串输出到控制台,最后自动增加换行字符 \n。

(6)当标识符以一个大写字母开头使用这种形式的标识符的对象就可以被外部包的代码所使用类似于Java的public标识符如果以小写字母开头,对包外是不可见的,但他们在整个包的内部是可见可用的类似于Java的protected。