Go语言简介及环境配置

本文章主要讲解了Go语言的一些基本特性,以及Go语言编程环境的配置

Go语言简介

Go语言的学习方向/应用领域

Go语言,又称作Golang(Go language的简称),可以做区块链研发工,服务器端/游戏软件工程师,或者分布式,云计算。

学习Go语言以及其他编程语言的方法

  1. 高效愉快的学习。
  2. 先建立一个整体框架,然后再去打磨细节。
  3. 在实际工作中,要培养用到什么,能够快速学习什么的能力。
  4. 作为一个工科学生,要先know how,再know why。
  5. 软件编程是一门“做中学”的学科,不是学会了再做,而是做了才会。
  6. 适当的囫囵吞枣。
  7. 学习软件编程应该琢磨别人怎么做,而不是我自己认为应该怎么做的过程。

Golang的概述

Golang被创造的原因

  1. 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后与硬件,无法合理利用多核CPU的优势提升软件系统的性能。
  2. 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
  3. 企业运行维护着很多C/C++的项目,它们的运行速度虽然很快,但是编译速度很慢,还存在内存泄漏等一系列的困扰需要去解决。

Golang的特点

  • 简介

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

  1. 从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等,也保留了和C语言一样的编译执行方式及弱化的指针
  2. 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
  3. 垃圾回收机制,内存自动回收,无需开发人员管理。
  4. 天然并发
    1. 从语言层面支持并发,实现简单
    2. goroutine,轻量级线程,可实现大并发处理,高效利用多核。
    3. 基于CPS并发模型(Communicating Sequential Processes)实现
    4. 吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的goroute之间的相互通信。
    5. 函数可以返回多个值。
    6. 新的创新,如切片slice,延时执行defer
//Go弱化指针演示
func testPtr(num *int) {
    *num = 20
}
//Go语言函数返回多个值演示
func getSumAndSub(n1 int,n2 int)(int,int) {
    sum := n1 + n2
    sub := n1 - n2
    return sum,sub
}

Go语言开发工具的介绍

  1. VSCode:支持Go语言语法高亮,也可以安装Go语言插件,还有智能提示,编译运行等功能。
  2. Sublime Text:可以免费使用,但是保存次数到一定数量会提示购买。
  3. Vim:它是从vi发展出来的文本编辑器,代码补全,编译及错误跳转等方便编程的功能很丰富,在程序员中被广泛使用。
  4. Emacs:传说中的神器,不仅是一个编辑器,因为它的功能强大,可以称它为集成开发环境。
  5. Eclipse IDE:开源免费,并提供GoEclipse插件
  6. LiteIDE:专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是国人开发的。
  7. JetBrains全家桶:如Phpstorm,WebStorm,Pycharm(需要安装插件)以及Goland。

注:基础阶段建议使用VSCode

VSCode的安装和使用

VSCode下载链接

按照自己的系统以及位数选择下载,建议选择安装包版。

Go语言开发环境-安装和配置SDK

SDK是什么

  1. SDK的全称为Software Development Kit(软件开发工具包)
  2. SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包

Go语言SDK的下载

  1. 进入Go语言的官网,直接点击Download Go
  2. 选择对应的系统即可,一般下载安装版,请注意安装路径不要有中文,特殊符号,空格等。
  3. 安装完毕之后,打开cmd(如果安装到C盘请用管理员模式启动cmd),输入go version,如果可以正确显示版本号,那么Go语言的SDK安装完成。
  4. 如果需要在其他路径中建立文件夹编写Go语言代码,需要在系统变量中添加名为GOPATH,值为你的代码的路径的环境变量。

如果输入go version提示go不属于系统命令什么的,请重启cmd