一 什么是程序

程序:就是完成某个功能的指令的集合。

二 为什么选择Go语言

Go语言是区块链最主流的编程语言,同时也是当前最具发展潜力的语言。

Go语言是Google公司创造的语言,也是Google主推的语言。

国外如Google、AWS、Cloudflare、CoreOS等,国内如七牛、阿里、小米、京东等都已经开始大规模使用Golang开发其云计算相关产品。

谁先占领了先机,谁就拥有更多的机会。

三 Go语言的核心开发团队——三个大牛

四 Google创建Golang的原因

1 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。

2 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。

现在的编程语言具有以下问题:

a 风格不统一

b 计算能力不够

c 处理大并发不够好

3 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。

五 Golang的发展历程

2007:谷歌工程师开始设计一门全新的语言,它是Go语言的最初原型。

2009:Google将Go语言以开放源码的方式向全球发布。

2015:Go 1.5版本发布,本次更新移除了"最后残余的C代码"。

2017:Go语言发布1.8、1.9版。

2018:Go语言发布1.10版。

六 Golang语言特点

Go语言保证了既能达到静态编译语言的安全和性能,又能达到动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go = C + Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。

1 从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等,也保留了和C语言一样的编译执行方式及弱化的指针。

// go语言指针使用特点
func testPtr(num *int){
    *num=20
}

2 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。

package main // 一个go文件需要在一个包
import "fmt" // 导入实现格式化的 I/O 

func main() {
    // 输出一句话
    fmt.Println("ok")
}

3 垃圾回收机制,内存自动回收,不需要开发人员管理。这个是c语言做不到的。

4 天然并发(重要特性)

  • 从语言层面支持并发,实现简单。

  • goroutine,轻量级线程,可实现大并发处理,高效利用多核。

  • 基于CPS并发模型(Communicating Sequential Processes)实现。

5 吸收了管道通信机制,形成了Go语言特有的管道channel

通过管道channel,可以实现不同的goroute之间的相互通信。

6 函数可以返回多个值