Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)...

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)

Go语言概述

Go语言诞生的背景

2007年谷歌的三位大牛为了解决Google在软件开发中遇到的一些困难:


Go的创始人

  • 多核硬件架构
  • 超大规模的分布式集群(上万台甚至是几十万台服务器)
  • Web开发模式导致前所未有的开发规模和更新速度

Go语言的特性

  • 运行速度快,简单易学
    运行速度高于Java,Python,学习难度相对于C/C++简单
  • 开源、跨平台
    支持Windows,Linux,macOS等主流的操作系统
  • 简单
    相对于C的37个关键和C++11多达84个关键字,Go语言只有25个关键字,另外对于复杂的任务,比如说并发编程和内存管理,Go语言都内置了并发支持以及垃圾回收机制。
  • 高效
    Go语言作为一种编译的静态类型语言,尽管支持了垃圾回收机制,但是仍然可以使用指针去直接访问内存。
  • 生产力
    Go语言有简洁清晰的依赖管理,以及独特的接口类型设计,甚至对编程方式的约束,比如在程序的扩展上支持符合而不支持继承的扩展方式,这些都使得它成为一门极具生产力的语言。

Go语言的应用场景

  • 网络编程
  • 服务器编程
  • 区块链开发
    阿里、腾讯、百度、滴滴都在自己的业务中使用Go语言构建大规模的互联网系统,知乎也舍弃Python从而使用Go语言重构推荐系统

Docker和Kubernetes都是使用Go语言编写的,所以Go也被称为云端开发语言
著名的区块链项目:以太坊、Hyperledger都可以使用Go开发。
传统的企业应用和物联网应用都有Go的身影,对于掌握Go语言对于未来的个人成长和职业发展都有非常重要的意义。

Go语言开发环境搭建

Go1.14下载

Go语言官网: https://golang.google.cn/

如果想要开发Go程序,首先需要去Go官网下载和安装Go,当打开Go官网首页后,点击Download Go
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第1张图片
然后就会跳转到Go的下载页,Go语言提供了主流操作系统(Windows,Linux,macOS)的各个版本安装包。
目前(2020/03/08)最新版本的Go语言是Go1.14,如果是Windows系统选择下载 go1.14.windows-amd64.msi即可,而如果你的系统是macOS系统则可以选择下载 go1.14.darwin-amd64.pkg
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第2张图片

Go1.14安装

Windows系统的Go语言安装文件go1.14.windows-amd64.msi文件下载完成以后就可以直接双击进行安装了。
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第3张图片

启动Go1.14安装程序
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第4张图片

同意License
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第5张图片

配置Go的安装路径

Windows默认的Go语言安装路径是C:\Go,如果自定义安装目录,不能带中文和空格

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第6张图片
配置Go的安装路径

开始安装
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第7张图片

安装中
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第8张图片

完成安装
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第9张图片

GOPATH配置

在安装完Go之后,需要在系统环境中配置GOPATH。

Windows系统的GOPATH配置实现如下所示
首先打开文件资源管理器,然后找到此电脑,右键单击属性
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第10张图片

在系统面板中选择高级系统设置
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第11张图片

然后在系统属性中选择环境变量
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第12张图片

在系统环境变量中新建GOPATH,其变量值指向D:\workspace\go\ittimeline\vs_code\go-core
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第13张图片

然后在DOS命令行中输入go env命令来查看Go的环境信息,重点关注GOPATH的值即可。
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第14张图片

还可以通过go version 命令查看Go的版本信息

C:\Users\ittim>go version
go version go1.14 windows/amd64

Visual Studio Code 介绍

Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C ++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第15张图片

关于Visual Studio Code的详细使用,官网也提供了文档,其访问地址是 https://code.visualstudio.com/docs ,读者可以阅读该文档了解Visual Studio Code的详细使用。

Visual Studio Code 下载、安装

当使用Chrome浏览器访问Visual Studio Code的官网首页时,浏览器会自动检测系统的版本(Windows,Linux,macOS),然后显示和系统对应的Visual Studio Code版本下载。

如果电脑是Windows系统,点击Download for Windows即可,目前(2020/03/08)最新的版本是1.42.1

下载完成后直接双击VSCodeUserSetup-x64-1.42.1.exe程序便可以进行安装
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第16张图片

接受协议
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第17张图片

选择安装路径
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第18张图片

选择开始菜单文件夹
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第19张图片

选择其他任务
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第20张图片

安装准备就绪
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第21张图片

安装完成并启动Visual Studio Code
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第22张图片

Visual Studio Code启动界面

Viusal Studio Code在首次启动时会自动创建一个文件Untitled-1,如果不需要使用该文件,直接关闭该窗口即可

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第23张图片
启动界面

Go语言工作目录规划

在正式开发Go程序之前,首先在本地磁盘(我这里选择D盘作为根目录)创建两个工作目录:D:\workspace\go\ittimeline\vs_code\go-core 和D:\workspace\go\ittimeline\goland,用于区分两个不同Java开发工具的工作目录。其中D:\workspace\java\ittimeline\vs_code\go-core用于存放Visual Studio Code开发的Go程序,而D:\workspace\java\ittimeline\goland用于存放GoLand开发的Go程序。

Visual Studio Code开发Go程序

go-core项目创建以及插件安装

首先启动Visual Studio Code,然后点击打开文件夹
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第24张图片

打开目录D:\workspace\go\ittimeline\vs_code\go-core
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第25张图片

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第26张图片
go-core

然后在go-core目录下依次创建三个同级别的目录src,bin和pkg
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第27张图片

然后在src目录下创建 net\ittimeline\go\core\foundational\object目录
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第28张图片

接着在net\ittimeline\go\core\foundational\object下创建Go语言的源程序helloworld.go
当创建源文件helloworld.go时Visual Stuido Code 右下角的Go扩展提示安装一些Go的工具
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第29张图片

当点击Install All之后控制台会输出安装工具的过程,默认安装的路径是GOPATH下的bin目录。
下载的过程会比较漫长...
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第30张图片

当安装成功之后会看到输出All tools successfully installed. You are ready to Go :).
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第31张图片
然后可以在GOPATH的bin目录下看到下载的可执行文件,其中dlv.exe是Go语言的调试器,如果想要在Visual Studio Code中调试Go程序,必须下载dlv.exe。
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第32张图片

Visual Studio Code开发Go程序

当Visual Studio Code开发Go程序所需要的插件安装完成以后,便可以进行Go程序的开发了。
学习任何一门编程语言都是使用HelloWorld作为例子,这里也不例外,使用Go语言编写程序,用于实现打印输出Windows10 & Go1.14& Visual Studio Code Hello World With Go
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第33张图片

package main

import "fmt"

func main() {
	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")
}

Go程序的基本结构

helloworld.go程序由包、代码依赖以及功能实现(即main函数)三部分组成。

package main  //包,表明代码所在的模块(包)

import "fmt" //引入代码依赖

//功能实现
func main() {
	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")
}

Go程序的注意事项

  • Go语言区分大小写
  • 语句结尾不需要使用分号
  • 代码风格不自由,强制缩进

Go语言可执行程序的说明

  • 必须是main包: package main
  • 必须包含main方法,func main
  • 文件名不一定是main.go,package的名字和目录名不需要一致
  • 同一个目录下只能有一个可执行程序,即包声明为main包并且包含main方法的程序

Visual Studio Code 调试Go程序

切换到Visual Studio Code的运行和调试,点击运行和调试(快捷键F5)
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第34张图片

程序会输出Windows10 & Go1.14& Visual Studio Code Hello World With Go
Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第35张图片

Go语言与其他编程语言的差异

main函数返回值的差异

Go语言中的main函数不支持任何返回值,而是通过os.Exit()来返回程序退出时的状态。

通常情况下os.Exit()中传入参数0表示正常退出,os.Exit()中传入参数-1表示异常退出。

Go语言程序的运行除了使用devle工具外,还可以借助Go语言提供的go run命令来执行Go程序
正常退出

package main

import (
	"fmt"
	"os"
)

func main() {

	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")
	os.Exit(0)

}

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第36张图片
正常退出

异常退出

package main

import (
	"fmt"
	"os"
)

func main() {

	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")
	os.Exit(-1)

}

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第37张图片
异常退出

获取命令行参数

Go语言的main函数不支持传递参数,可以用过os.Args()来获取命令行参数

package main

import (
	"fmt"
	"os"
)

func main() {

	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")

	//打印输出命令行参数 使用os.Args获取命令行参数
	fmt.Println("当前程序的命令行参数:", os.Args)

	//打印输出命令行参数的格式
	fmt.Println("命令行参数的个数:", len(os.Args))

	if len(os.Args) > 1 {
		fmt.Println("获取第二个命令行参数的结果:", os.Args[1])

	}
	os.Exit(0)

}

Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)..._第38张图片
获取命令行参数

Go注释

注释是针对Go语言源程序的说明性文字,通过添加适当的注释,增加程序的可读性,方便后期维护,注释的内容不会被编译,即注释不会影响程序的运行效果。

Go语言的注释分为单行注释和多行注释。

单行注释使用//表示,快捷键Ctrl+/,多行注释使用/**/表示,Goland快捷键是Shift+Ctrl+/,在使用多行注释时不能嵌套使用。

package main //包,表明代码所在的模块(包) 如果是可执行程序,必须声明为main包

import "fmt" //代码依赖,因为要使用到Println()函数,因此必须导入fmt
/*
	单行注释和多行注释的应用
*/
//程序的入口
func main() {
	//打印输出 跟Tony老师学Go语言 并换行
	fmt.Println("跟Tony老师学Go语言")
}

你可能感兴趣的:(Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)...)