zoukankan      html  css  js  c++  java
  • 0.0、Go快速入坟系列配置与安装Go环境

    序言:本系列非教学资料,而是笔者自己的一个学习过程笔记。如理解有误,请前辈们多多指教。
    笔者的笔记摒弃大篇幅的理论,而是从多从代码和个人理解去阐述一些自认为学习过程中需要停下来思考、吸收的知识
    本篇介绍的还是采取远古的go path配置go环境

    Go安装包下载

    因Go的官网在国外(不好下载),我们可以到Go在国内的一些社区网站下载Go的安装包。这里推荐GO语言中文网。Windows环境安装较为简单,所以不做过多阐述。因笔者是在linux环境下进行环境的配置,所以简单说下配置过程:

    1. 下载对应版本的安装包(笔者下载的linux 64位)
      image-20201229232052760

    2. 解压tar-zxvf 压缩包名安装包到/usr/local 路径下

    3. Go的代码需要统一放于一个工作空间中,并为此空间配置GOPATH和Go开发工具的环境变量,对于此工作目录,需要存放三个子目录结构:
      GoWorkSpace
      ├── bin:编译后生成的源码文件
      ├── pkg:在go install后生成的可执行文件的目录
      └── src :所有Go项目源代码存放地

      设置GOPATHGo sdk环境变量:
      修改sudo vim /etc/profile系统环境变量:

      export GOROOT=/usr/local/go      #Golang安装目录
      export GOPATH=/Home/GoWorkSpace   #Golang项目工作目录
      export PATH=$GOROOT/bin:$PATH    #Linux环境变量
      export GOBIN=$GOPATH/bin         #go install后生成的可执行命令存放路径
      
    4. source /etc/profile 刷新环境变量信息

    IDE

    笔者使用的集成开发环境是十分轻量级的Vscode,在里面只需要安装Go插件:
    image-20201229235740419

    接下来需要安装一些go的开发工具,在vscode中使用ctrl + shift + p输入Go,找到Install/Update Tools选项会看到一下的工具,我们全选,下载:
    image-20201230000804658

    在安装过程中应该会发现,下载速度简直感人,这是因为go的官方网站在国外。所有我们可以配置下这些开发工具官方库到国内代理去下载

    • go env -w GO111MODULE=on
    • go env -w GOPROXY=https://goproxy.cn,direct

    开发环境至此就搞定了

    在开始go编程之前,有些常识是必须知道的

    • 编写了go命令源代码(main包+main函数入口)后,我们可以在源代码路径中执行go run 源代码名字.go去直接运行我们的go程序,也可以通过go install命令去编译安装代码为可执行文件,然后再去执行(这就比较繁琐了)
    • 在编译生成go程序的时候,go实际上会去两个地方找程序包:
      GOROOT下的src文件夹和GOPATH下的src所以我们在编译一个go的命令源文件的时候不用写绝对路径,直接写文件名即可如go install fileName,然后会在gopathrootpath(当有多个gopath的时候会放在rootpath中)中的bin中生成一个可执行文件,linux下通过./filename就可以运行该我们编写的go程序了
    • 也可以使用go build fileName编译文件,它会在当前目录下生成可执行文件
    • 可以直接使用go buildgo install不加文件名,需要注意的是,该用法只适用于当前工作目录只有一个命令源文件时使用
    • 在程序包里,自动找main包的main函数作为程序入口,即package mainfunc main(),然后进行编译(这部分内容会在下面提到)

    下面进入正题系列之前,需要先简单的认识三个关键字,packagefuncmain 因为在编写最基本的hello world程序的时候,都会看到它们的身影:

    1. package 表示的是一个包 后面跟着的是包的名字如 package main,它声明了其下代码所属的包,其实就是c#中命名空间那味儿
    2. import 表示代码所需要使用的包,学过一点python的小伙伴应该十分熟悉了
    3. func 表示声明的是一个函数,像大多数语言一样,程序的入口是一个main函数,函数体使用的是{}包起来的部分

    语言的入门代码示例:

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Println("Hello, Jochen")
    }
    
    

    ps:如果你的vscode出现了智障不智能补全老是报错的行为,大致是因为gopls导致的(这玩意需要搭配go mod使用,可参考本篇文章了解,我们可以选择关闭掉
    image-20210101025325075

    此时编译器就会提示你下载gocode,下载即可

  • 相关阅读:
    最全的.NET Core跨平台微服务学习资源没有之一
    MySQL添加列、删除列,创建主键等常用操作总结
    SQL Server函数之空值处理
    SqlServer中循环和条件语句
    【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
    【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
    Core知识整理
    C#对接----韵达开发平台--取电子面单
    Cookie 用法
    微信支付V3版本的那些事
  • 原文地址:https://www.cnblogs.com/deehuang/p/14209523.html
Copyright © 2011-2022 走看看