• Go简单入门


    Go语言简单入门

    一、说明

    本文简单的指导,将完成下面事情:

    • 安装GO(如果还没有安装);
    • 写一个简单的“Hello,World”代码;
    • 使用Go命令,运行你的代码;
    • 使用Go的包发现工具,查找你在代码中能使用的包;
    • 调用一个外部模块的函数;

    二、先决条件

    • 有一些写代码的经历;

    • 有一个编写代码的工具;

      任何的文本编辑器都是可以的。绝大多数的编译器对Go的支持都是友好的。最流行的编译器VSCode(免费),GoLand(付费),Vim(免费)

    • 一个命令行终端;

    三、编写代码

    开始编写一个“Hello, World”的代码。

    3.1 打开命令终端,并cd进入你的主目录:

    $ cd
    $
    
    • 1
    • 2

    3.2 为你第一个Go源代码创建一个“hello”目录:

    $ mkdir hello
    $ cd hello/
    $
    
    • 1
    • 2
    • 3

    3.3 让你的代码能够依赖跟踪

    当你的代码导入包含在其它模块中的包时,通过你自己的代码模块来管理这些依赖。这个模块被定义在go.mod文件中,以便于跟踪提供这些包的模块。go.mod文件是保存在你的代码中,包含在你的源代码仓库中。

    为了让你的代码通过go.mod文件进行依赖跟踪,运行go mod init 命令,给它一个你的代码将放入的模块名字。这个名字就是模块的模块路径。

    在实际的开发中,模块路径通过是你的代码存放的仓库地址。例如,模块路径可能在githu.com/mymodule。如果你计划发布你的模块进让别人使用,那模块路径就必须是能通过Go工具下载的。

    为了本文指导的目标,仅仅使用example/hello

    $ cd
    $ mkdir hello
    $ cd hello/
    $ go mod init example/hello
    go: creating new go.mod: module example/hello
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.4 在你的编译器中,创建一个hello.go 文件,用于写代码

    3.5 将下面的代码复制到hello.go文件中,并保存文件

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这段代码中:

    • 定义了一个"main"包(包是对函数进行分组的一种方式,它由同一目录中的所有文件组成);
    • 导入流行的"fmt"包,它包含了格式化text,包含了打印控制台。那个包是一个标准的库包,在你安装Go的时候获得;
    • 实现了一个main函数,并打印消息到控制台。当运行main包的时候,main函数默认会执行;

    3.6 运行代码

    $ go run .
    Hello, World!
    
    • 1
    • 2

    go run命令是Go中很多命令中用于执行一些事情的一个。使用下面的命令得到一个命令列表:

    go help
    
    • 1

    四、使用外部包,调用命令

    当你需要让你的代码做一些事情,别人已经做实现了。你能查找拥有这个函数的包,使用在你的代码中。

    4.1 让你打印的消息更有趣,使用一个外部模块的函数

    • pkg.go.dev上搜索"quote";
    • 定位到rsc.io/quote, 点击进入
    • Documentation部分的Index下面,标注了一列可以在代码中调用的函数;
    • 在页面的顶部,注意到"quote"是包含在"rsc.io/quote"模块中的;

    你能使用pkg.go.dev站点查找已经发布的模块,它们包中的函数可以使用在代码中。

    4.2 在你的代码中,导入rsc.io/quote,并调用Go函数

    package main
    
    import "fmt"
    import "rsc.io/quote"
    
    func main() {
        // fmt.Println("Hello, World!")
    	fmt.Println(quote.Go())
    	fmt.Println(quote.Hello())
    	fmt.Println(quote.Glass())
    	fmt.Println(quote.Opt())
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4.3 添加新模块

    $ go mod tidy
    go: finding module for package rsc.io/quote
    go: found rsc.io/quote in rsc.io/quote v1.5.2
    
    • 1
    • 2
    • 3

    4.5 运行代码

    $ go run .
    Don't communicate by sharing memory, share memory by communicating.
    
    • 1
    • 2

    当运行go mod tidy命令的时候,它将定位并下载rsc.io/quote

  • 相关阅读:
    如何确定你访问的网站的真实性——证书体系
    gbase8s数据库的逻辑日志、物理日志和两种特殊情形的学习
    图的邻接表存储
    RT-Thread Nano移植FinSH控制台
    载电荷/离子修饰/稀土杂化表面/空心玻璃微球表面接枝聚苯乙烯微球
    删除的视频怎么找回来呢?
    破解WPA2-PSK加密
    k8s入门:kube-prometheus-stack 全家桶搭建(Grafana + Prometheus)
    短视频背后的商业机遇:TikTok值得投资吗?
    Java集合之单列集合
  • 原文地址:https://blog.csdn.net/hefrankeleyn/article/details/126357493