• 二、Go语言开发环境安装与编写第一个Hello World


    本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。

    全文使用环境如下:

    • Go语言版本:1.13
    • 操作系统:deepin
    • 使用工具:Goland开发工具

    Go语言追溯历史

    Go语言2009年正式发布,Go语言又称为Golang,由Google公司开发的一种编程语言。
    其主要特性在于部署简单、并发好(协程)、语言设计简单编写方便、保留指针等。
    Go语言为编译型语言,目前 Docker、Go-Ethereum、Thrraform 和 Kubernetes均为Go语言发开。
    Go语言编写遵循以下三个步骤:
    1、创建编写Go程序文件
    2、使用Go build编译Go程序,生成执行文件
    3、执行编译后的执行程序。

    下面我们开始正式编写作为程序员本身的最重要的一个程序,HelloWorld

    第一步,搭建环境

    1、在deepin中安装Go语言相关开发环境还是比较简单的,基本上都是tar.gz压缩包,首先我们到Go官网下载基础包,这里我们下载的是Linux版本。
    https://golang.google.cn/dl/
    Go下载截图.png

    2、将下载好的压缩包解压缩到你需要安装的目录中,这里我安装在/usr/local目录,参考的是官方安装文档

    tar -C /usr/local -xzf /home/zhangyc/Downloads/go1.13.6.linux-amd64.tar.gz
    

    3、配置一下环境变量,使其在系统任何位置都可以使用,这里我配置的是全局配置,使其所有账号均可使用

    sudo vim /etc/profile
    #在文件最底下追加下面变量
    export PATH=$PATH:/usr/local/go/bin
    

    深度截图_选择区域_20200120114144.png
    4、执行命令使其环境变量生效

    source /etc/profile
    

    5、在命令行中输入go和go version命令进行检查环境是否具备
    深度截图_选择区域_20200120114405.png

    6、上面我们已经安装完成基础go环境了,下面我们开始安装编辑器。首先下载Goland编辑器

    深度截图_选择区域_20200120152800.png
    7、创建一个安装目录,我这里在根目录上创建了一个目录,用于放置这些安装的工具

    mkdir /idea
    chown zhangyc:zhangyc /idea
    cp ~/Downloads/goland-2019.3.1.tar.gz /idea
    cd /idea
    tar -zxf goland-2019.3.1.tar.gz
    

    8、至此其实已经安装好了,启动时运行/idea/GoLand-2019.3.1/bin/goland.sh 即可,方便快速启动可以在桌面创建一个快捷方式,或在环境变量PATH中配置上GoLand目录,这样可以任何命令窗目录下运行程序。

    第二步,编写HelloWorld程序

    下面我们开始编写第一个Go程序

    1、首先新建一个Go项目程序

    深度截图_选择区域_20200120153806.png

    2、这里如果GOROOT目录没有加载出来则可以点击后面的+号进行添加刚才我们安装的Go主程序目录

    左侧第一个Go程序新建是基于GOPATH目录的,我们这里采用第二个Go Modules模块化创建,这样有利于我们后续多个项目独立化和引用版本控制。
    创建完成后是这样的:
    深度截图_选择区域_20200120154140.png
    其中go.mod就是Go语言模块化的核心配置文件,这里面包含了我们项目中使用的所有引用信息和相关版本号。

    3、新建一个目录,baseDemoProject1,这里我们是为了区分后续的其他测试项目,因此这个独立创建一个目录,其实我们现在实现也可以直接创建一个go程序。

    然后在该目录下创建一个go文件,命名为HelloWWorld,命名可以随意
    深度截图_选择区域_20200120154501.png
    深度截图_选择区域_20200120154602.png

    4、在该文件中,我们编写如下代码
    func main()  {
    	fmt.Println("HelloWorld")
    }
    

    当我们输入如上代码时会发现GoLand组件自动给我们补全了组件引用。完整代码如下:

    package main
    
    import "fmt"
    
    func main()  {
    	fmt.Println("HelloWorld")
    }
    

    这里我们需要修改package包名字,更改为main,这样它就变成了主入口了。
    上面package是包名
    import是导入了哪些组件
    func是声明函数,我们这里声明了一个func main函数,并放到main包中,这时它就变成了整个go项目的主入口函数了。
    每个package中有两个函数是go自动调取的,init与main,init函数都是可选的,但package main就必须包含一个main函数,先调用init函数,再调用main函数,运行程序,必须要运行存在main函数的go文件

    5、在当前输入页面右击运行一下该程序

    深度截图_选择区域_20200120155133.png

    深度截图_选择区域_20200120155151.png

    OK,至此第一个go程序我们编写完成了。那如何页面上打印HelloWorld呢?

    6、在原有代码中加入如下代码

    func main() {
    	//打印
    	fmt.Println("Hello World")
    	/*搭建一个http服务,实现基础打印*/
    	//指定当前目录为根目录
    	http.Handle("/", http.FileServer(http.Dir(".")))
    	//使用端口8080作为服务监控端口
    	http.ListenAndServe(":8080", nil)
    }
    

    这里我们完成了一个基础的web服务搭建,暴露出来的端口是8080,我们来访问一下,成功加载出来我们本地的目录。
    深度截图_选择区域_20200120155456.png

    它遍历了我们本地目录,这是因为http.FileServer(http.Dir("."))这句话,它的含义是将当前目录作为文件服务器,然后传给了handle中。
    我们编写一个方法,让其调用一下看看。

    func main() {
    	//打印
    	fmt.Println("Hello World")
    	/*搭建一个http服务,实现基础打印*/
    	//指定当前目录为根目录
    	http.Handle("/", http.FileServer(http.Dir(".")))
    	http.HandleFunc("/hello", helloWorld)
    	//使用端口8080作为服务监控端口
    	http.ListenAndServe(":8080", nil)
    }
    //在浏览器中打印Hello World
    func helloWorld(w http.ResponseWriter,r *http.Request)  {
    	fmt.Fprint(w,"Hello World")
    }
    

    再次运行,我们看到浏览器页面上打印出来了
    深度截图_选择区域_20200120161146.png

    至此,我们的第一个Go Web程序编写完成。相关代码我已经放到Gitee与GitHub上了,有需要的可以通过下面的地址下载。
    GitHub

    cn華少/goStudy

  • 相关阅读:
    AC日记——Little Elephant and Numbers codeforces 221b
    AC日记——Little Elephant and Function codeforces 221a
    AC日记——Mice and Holes codeforces 797f
    AC日记——Sliding Window poj 2823
    Poj 2976 Dropping tests(01分数规划 牛顿迭代)
    Bzoj 1968: [Ahoi2005]COMMON 约数研究
    洛谷 P2424 约数和
    Hdu Can you find it?(二分答案)
    SPOJ GSS1
    Bzoj 2243: [SDOI2011]染色(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/cnhuashao/p/12753399.html
Copyright © 2020-2023  润新知