第1节 Go语言介绍

55 阅读2分钟

1. Go 的工作方向

  • 区块链开发工程师
  • Go服务端应用开发、游戏软件开发工程师
  • 分布式、云计算开发

2. 如何快速学习 Go 语言

  • 先了解整体架构,然后掌握其中的细节
  • 适当的囫囵吞枣,学习别人是怎么运用、怎么做,而不是我认为应该怎么做
  • 先了解基本原来、基本语法,然后学习快速入门案例

3. Google 创造 Go 语言的原因

  • 计算机的硬件水平不断提升,性能更加强大。然而目前的主流编程语言发展明显落后于硬件更新速度,不能够合理利用多核CPU的优势来提升软性系统性能

  • 软件系统的复杂度越来越高,维护成本也随之增加,目前缺乏一个足够简洁高效的编程语言,主要体现在

    • 编程语言风格不统一
    • 计算能力不够强大
    • 大并发处理不够高
  • 企业运行维护很多 C / C++的项目,C / C++应用程序运行速度虽快,但是编译速度慢,同时还存在内存泄漏等问题

4.Go 语言的特点

  Go 语言既拥有静态编译语言的安全和性能,又有动态语言开发维护的高效性。可以说 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

  • Go 语言从 C 语言中继承了很多理念,包括表达式、控制结构、基础数据类型、调用参数传值 和 指针等等,也保留了 C 语言一样的编译执行方式。
  • 引入包的概念,用于组织程序结构,Go 语言的每一个文件都要归属于一个包,文件不能单独存在。
package main // go 文件所在的包

import "fmt"
func test() {
    fmt.Println("Hello Go!")
}
  • 拥有垃圾回收机制,内存自动回收,不需要开发人员管理内存
  • 天然支持高并发
    • goroutine 轻量级线程,可实现大并发处理,高效利用多核
    • 基于 CPS(Communicating Sequential Processes) 并发模型实现高并发
    • 吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel ,可以实现不同的 goroute 之间通信
    • 函数可以返回多个值
func calc(n1 int,n2 int)(int,int) {
    sum := n1 + n2
    sub := n1- n2
    return sum,sub
}
  • 支持切片、延时执行等