zoukankan      html  css  js  c++  java
  • Go语言学习笔记-Go语言概述与开发环境搭建(传智播客Go语言与区块链2019版)

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

    Go语言概述

    Go语言诞生的背景

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

    Go的创始人
    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语言提供了主流操作系统(Windows,Linux,macOS)的各个版本安装包。
    目前(2020/03/08)最新版本的Go语言是Go1.14,如果是Windows系统选择下载 go1.14.windows-amd64.msi即可,而如果你的系统是macOS系统则可以选择下载 go1.14.darwin-amd64.pkg
    Go Download

    Go1.14安装

    Windows系统的Go语言安装文件go1.14.windows-amd64.msi文件下载完成以后就可以直接双击进行安装了。
    go1.14.windows-amd64.ms

    启动Go1.14安装程序
    安装Go1.14

    同意License
    同意License

    配置Go的安装路径

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

    配置Go的安装路径
    配置Go的安装路径

    开始安装
    开始安装

    安装中
    安装中

    完成安装
    完成安装

    GOPATH配置

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

    Windows系统的GOPATH配置实现如下所示
    首先打开文件资源管理器,然后找到此电脑,右键单击属性
    属性

    在系统面板中选择高级系统设置
    高级系统设置

    然后在系统属性中选择环境变量
    环境变量

    在系统环境变量中新建GOPATH,其变量值指向D:workspacegoittimelinevs_codego-core
    GOPATH

    然后在DOS命令行中输入go env命令来查看Go的环境信息,重点关注GOPATH的值即可。

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

    C:Usersittim>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)扩展的生态系统。
    Windows,Linux,macOS

    关于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
    Windows Visual Studio Code下载

    下载完成后直接双击VSCodeUserSetup-x64-1.42.1.exe程序便可以进行安装
    VSCodeUserSetup-x64-1.42.1.exe

    接受协议
    接受协议

    选择安装路径
    选择安装路径

    选择开始菜单文件夹
    选择开始菜单文件夹

    选择其他任务
    选择其他任务

    安装准备就绪
    安装准备就绪

    安装完成并启动Visual Studio Code
    安装完成

    Visual Studio Code启动界面

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

    启动界面
    启动界面

    Go语言工作目录规划

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

    Visual Studio Code开发Go程序

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

    首先启动Visual Studio Code,然后点击打开文件夹
    Visual Studio Code

    打开目录D:workspacegoittimelinevs_codego-core
    D:workspacegoittimelinevs_codego-core

    go-core
    go-core

    然后在go-core目录下依次创建三个同级别的目录src,bin和pkg
    src

    然后在src目录下创建 netittimelinegocorefoundationalobject目录
    netittimelinegocorefoundationalobject

    接着在netittimelinegocorefoundationalobject下创建Go语言的源程序helloworld.go
    当创建源文件helloworld.go时Visual Stuido Code 右下角的Go扩展提示安装一些Go的工具
    Go工具安装提示

    当点击Install All之后控制台会输出安装工具的过程,默认安装的路径是GOPATH下的bin目录。
    下载的过程会比较漫长...
    Go工具安装过程

    当安装成功之后会看到输出All tools successfully installed. You are ready to Go :).
    安装成功
    然后可以在GOPATH的bin目录下看到下载的可执行文件,其中dlv.exe是Go语言的调试器,如果想要在Visual Studio Code中调试Go程序,必须下载dlv.exe。
    工具包

    Visual Studio Code开发Go程序

    当Visual Studio Code开发Go程序所需要的插件安装完成以后,便可以进行Go程序的开发了。
    学习任何一门编程语言都是使用HelloWorld作为例子,这里也不例外,使用Go语言编写程序,用于实现打印输出Windows10 & Go1.14& Visual Studio Code Hello World With Go
    helloworld.go

    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)
    运行和调试

    程序会输出Windows10 & Go1.14& Visual Studio Code Hello World With Go
    运行结果

    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)
    
    }
    
    

    正常退出
    正常退出

    异常退出

    package main
    
    import (
    	"fmt"
    	"os"
    )
    
    func main() {
    
    	fmt.Println("Windows10 & Go1.14& Visual Studio Code Hello World With Go")
    	os.Exit(-1)
    
    }
    

    异常退出
    异常退出

    获取命令行参数

    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语言的注释分为单行注释和多行注释。

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

    package main //包,表明代码所在的模块(包) 如果是可执行程序,必须声明为main包
    
    import "fmt" //代码依赖,因为要使用到Println()函数,因此必须导入fmt
    /*
    	单行注释和多行注释的应用
    */
    //程序的入口
    func main() {
    	//打印输出 跟Tony老师学Go语言 并换行
    	fmt.Println("跟Tony老师学Go语言")
    }
    
  • 相关阅读:
    HashMap
    Java内部类应用——静态内部类
    transient关键字和@Transient 注解
    java基本数据类型传递与引用传递区别
    抽象类
    java collection-list详解
    Arrays,ArrayList,以及ArrayList源码分析
    【转载】【剑指offer】面试题40:最小的 k 个数中的优先级队列
    java stack总结
    java Queue
  • 原文地址:https://www.cnblogs.com/ittimeline/p/12973392.html
Copyright © 2011-2022 走看看