学习笔记1------Go语言介绍

1.1GO语言是什么

“Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件”(来自go官网golang.org)
程序员在开发程序,开发软件时都会选择一门编程语言,那么我们应该怎样进行选择呢?可能有人会说,我们要选择一门简单的,容易学习的,而且开发效率高的,能够在很短的时间内开发完成一个软件,这样老板会非常的满意,能够升职加薪,Python语言或者Ruby语言就非常适合这种快速开发。但是问题是,用这种语言开发的软件,当用户量多了,运行的速度会非常慢,给人的感觉就是非常卡,大家想一下这种软件还有人愿意使用吗?那可能又有同学说了,我们要学习运行速度快的编程语言,例如C或者是C++,但是这类编程语言学习难度是非常大的。那么有没有一种编程语言,学习非常简单,开发速度非常快,开发出的软件电脑运行速度非常快呢?有,就是我们今天开始学习的GO语言。GO 语言借鉴了Python等其它编程语言简单,易学,生产效率高,同时GO语言专门针对多处理器(多核CPU)系统的程序进行了优化(让每核CPU都能够执行GO语言开发的程序),这样使用GO语言开发的程序运行的速度可以媲美C或C++开发程序的速度。

1.2GO语言优势

1:运行速度快,简单易学
2:适合区块链开发
3:跨平台
4:丰富的标准库(指令),Go目前已经内置了大量的库,特别是网络库非常强大(开发飞秋软件)
5:Go里面也可以直接包含C代码,利用现有的丰富的C库
6:语言层面支持并发,这个就是Go最大的特色,天生的支持并发。所谓并发,所有正在运行的程序轮流使用CPU,每个程序允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个程序服务,就好象所有的程序都在不间断地运行一样。并发好处就是可以运行多个程序,并不卡顿。

Go并发

Go 在语言级别支持协程,叫goroutine。Go 语言标准库提供的所有系统调用操作(包括所有同步IO操作),都会出让CPU给其他goroutine。这让轻量级线程的切换管理不依赖于系统的线程和进程,也不需要依赖于CPU的核心数量。

有人把Go比作21世纪的C语言。第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持并行。同时,并发程序的内存管理有时候是非常复杂的,而Go语言提供了自动垃圾回收机制。
Go语言为并发编程而内置的上层API基于顺序通信进程模型CSP(communicating sequential processes)。这就意味着显式锁都是可以避免的,因为Go通过相对安全的通道发送和接受数据以实现同步,这大大地简化了并发程序的编写。Go语言中的并发程序主要使用两种手段来实现。goroutine和channel。

1.3GO语言能干什么

1:网络编程,这一块目前应用最广,例如网站开发。
2:服务器编程,例如:处理日志,处理文件。
3:区块链相关方向的开发

1.4学习资料

Go语言官网(需要翻墙):https://golang.org/
go中文社区:https://studygolang.com
go中文在线文档:https://studygolang.com/pkgdoc

1.5环境安装

前面已经对GO语言做了一个简单的介绍,相信大家也已经基本有所了解了,那么我相信大家迫不及待的想学习GO语言了,但是我们在具体学习GO语言前,需要先安装GO的开发环境,只有把GO的开发环境安装好了,才能有GO语言的指令来开发网站等等软件。也就是所谓的环境安装,就是将GO语言的指令都安装在你的电脑上,那么你在开发软件的时候就可以直接用了。GO环境的安装分为windows系统的安装和linux系统的安装,我们基础班先学习windows下的安装,之后学习linux系统下Go环境的安装。
Windows下GO语言的环境安装步骤如下:
Go安装包下载网址:https://www.golangtc.com/download
有zip压缩版和msi安装版两个按本下载。(这里使用msi安装版,比较方便)。
运行msi安装文件,千万不要在安装路径中出现中文,一路Next。(关于安装路径在这里可以给学生重点强调,安装的位置以及不能出现中文名称)

猜你喜欢

转载自blog.csdn.net/weixin_42927934/article/details/81590139