Skip to content

1.GO语言

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算

1.1简介

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

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

1.2撰写风格

在Go中有几项规定,当不匹配以下规定时编译将会产生错误。

  1. 每行程序结束后不需要撰写分号(;)。
  2. 大括号({)不能够换行放置。
  3. if判断式和for循环不需要以小括号包覆起来。

Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab

1.3编译器

当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。

官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件

1.4语言特点

  1. 背靠大厂,google背书,可靠
  2. 天生支持并发(最显著特点)
  3. 语法简单,容易上手
  4. 内置runtime,支持垃圾回收
  5. 可直接编译成机器码,不依赖其他库
  6. 丰富的标准库
  7. 跨平台编译

1.5 Go语言相关学习网站

2.Hello Word

go
package main  // 一个项目中只能有一个入口函数

import "fmt" //有引用必须调用

func main(){
    
}
package main  // 一个项目中只能有一个入口函数

import "fmt" //有引用必须调用

func main(){
    
}

数组

slice

struct使用场景,固定好的数据结构,不可以变更

go
Order :=struct {
	Uid string
	Price string
	Type int
	time string
	ProductId int
}{}
Order :=struct {
	Uid string
	Price string
	Type int
	time string
	ProductId int
}{}

map使用场景,不用固定数据类型,可以随便增加减少

go
//某个人情况
people := map[string]interface{}{"name":"zhangsan","score":100,"sex":false}

//某个人分数
score:=map[string]int{"zhangsan":100,"lisi":10,"wangwu":11}
//某个人情况
people := map[string]interface{}{"name":"zhangsan","score":100,"sex":false}

//某个人分数
score:=map[string]int{"zhangsan":100,"lisi":10,"wangwu":11}