• 创建一个GO模块


    创建一个GO模块

    一、说明

    这是介绍一些GO语言基本特性教程的第一部分。如果你是第一次使用Go,确保看一眼Go简单入门指导,这篇文章介绍了go命令,go模块,和一个简单的go代码。

    在这篇知道中,你讲创建两个模块。第一个是一个库,为了能让其它的库和应用导入。第二个是一个调用者应用,它将使用第一个模块。

    本教程的序列包含了七个简单的主题,每一个都阐明了一个语言的不同部分。

    1. 创建一个模块。写一个带有函数的模块,你能在其它的模块调用;
    2. 从另一个模块调用你的代码。带入并使用你的新模块;
    3. 返回和处理一个错误。添加简单的错误处理;
    4. 返回一个随机的问候。用切片处理数据(Go的动态大小数据);
    5. 为多个人返回问候语。存储key-valur对到map中;
    6. 添加一个测试。使用Go内置的单元测试机制来测试你的代码;
    7. 编译和安装应用。编译并安装你的代码到本地。

    二、准备

    • 有一些编程经历;
    • 一个编写代码到工具;
    • 一个命令终端;

    三、开始一个别人能使用的模块

    从创建一个Go模块开始。在一个模块中,你为一个离散的和有用的函数集收集一个或多个有关的包。例如,你能使用带有做金融分析函数的包创建一个模块,以便于别人在写金融应用的时候能够使用你的工作。

    Go代码是被分组成包,并且包是被分组成模块。你的模块指定了运行你代码需要的依赖,包括Go的版本,和其它需要的模块集。

    当你在模块中添加或优化功能,你发布模块的新版本。开发者写调用你模块函数的代码,能够导入已经更新的模块,在发布到生产去使用之前进行测试。

    1. 打开一个命令提示符,进入到你的主目录;

      $ cd
      $
      
      • 1
      • 2
    2. 为你的Go模块源代码创建一个"greetings"文件夹;

      $ mkdir greetings
      $ cd greetings/
      $
      
      • 1
      • 2
      • 3
    3. 使用go mod init命令开始你的模块

      运行go mod init命令,给它一个模块路径,例如example.com/greetings。如果你发布一个模块,这必须是一个能被Go工具下载的路径,这将是你的代码仓库。

      $ go mod init example.com/greetings
      go: creating new go.mod: module example.com/greetings
      $
      
      • 1
      • 2
      • 3

      这个go mod init命令创建了一个go.mod文件,能够跟踪你的代码依赖。目前,这个文件仅仅包含了模块命令和你代码支持的Go的版本。但是只要你添加依赖,go.mod文件将列出你代码依赖的版本。这保持了构建的可重现,并且能够直接控制模块版本的使用。

      $ ll
      total 8
      drwxr-xr-x  3 lifei  staff   96  8 17 00:07 ./
      drwxr-xr-x  4 lifei  staff  128  8 17 00:03 ../
      -rw-r--r--  1 lifei  staff   38  8 17 00:07 go.mod
      $ cat go.mod
      module example.com/greetings
      
      go 1.18
      $
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    4. 在你的文本编辑器上,创建一个文件,在上面写你的代码,把它叫做"greetings.go";

    5. 复制下面的代码到greetings.go文件中,并保存文件;

      package greetings
      
      import "fmt"
      
      // Hello 为一个命名的人返回一个问候
      func Hello(name string) string {
        // 返回一个问候,嵌套名字在消息中
        message := fmt.Sprintf("Hi, %v. Welcome!", name)
        return message
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

      这是你的模块的第一段代码。它给任何调用者返回一个问候。你将在下一部分写代码调用这个函数。

    在这个代码中:

    • 声明了一个“greeting”包,用于收集相关函数;

    • 实现了“Hello”函数,返回一个问候;

    • 这个函数需要一个string类型的name参数,这个函数也返回一个string。在Go中,一个函数它的名字使用一个大写字母开始,它能够被不在相同包的函数调用。这个Go中被称为导出名称。
      在这里插入图片描述

    • 声明一个message变量持有你的问候;

      在Go中,:=操作符是一个快捷方式,用于在一行中声明和初始化一个变量(Go使用右边的值来确定变量的类型)。

      多走一步,你也能这样写:

      var message string
      message = fmt.Sprintf("Hi, %v. Welcome!", name)
      
      • 1
      • 2
    • 使用fmt 包的Sprintf函数去创建一个问候语。第一个参数是格式化的字符串,并且Sprintf用name参数的值替换%v格式动词。插入name的值,完成问候语。

    • 将已经格式化后的问候语返回给调用者;

  • 相关阅读:
    128. SAP UI5 智能控件 Smart Controls 的初步认识
    Matlab 基础与应用
    Linux 环境安装【jdk、Tomcat、Docker、Maven、Kafka、Redis等】
    Windows Server 2019 激活
    信号系统之线性图像处理
    初识 python 装饰器
    RHCE8 资料整理(五)
    [Android] AndroidManifest.xml 详解
    【面试题】Vue的this.$nextTick方法,异步更新dom详解
    【日常】历史和世界杯
  • 原文地址:https://blog.csdn.net/hefrankeleyn/article/details/126377066