• Go从入门到精通——自己编写非执行包


    自己编写非执行包

      自己编写的非执行包也可以用类似的方法引用。

      下面我们将继续以 Hello world 为例来说明如何编写非执行包并在其他包中引用。

      首先,在 src 目录下创建一个子目录 package1,在其中新建一个代码文件 package1.go,代码如下:

    package package1
    
    import (
    	"fmt"
    )
    
    func Hello() {
    	fmt.Println("Hello world!")
    }
    

      然后,在 src 目录下在创建一个子目录 test1,在其中新建一个代码文件 test1.go,代码如下:

    package main
    
    import (
    	"package1"
    )
    
    func main() {
    	package1.Hello()
    }

      最后,直接编译并执行 test1 包可以得到输出结果,如下:

     

      我们再来研究一下这两个包的代码。package1 包的代码中,首先用以下代码:

    package package1

      声明了自己的包是 "package1"。

      接下来的 import 语句导入了 fmt 包。

    import(
        "fmt"
    )
    
    func Hello(){
       fmt.Println("Hello world")
    }
    

      以上几行代码定义了一个 Hello 函数,功能是输出 "Hello world!"字样。特别要注意,在这里 Hello 函数的名字中,首字母 H 必须是大写字母。这是因为 Go 语言强制要求一个包中能够被其他包调用的函数必须是以大写字母开始命名的(这样的函数称作 exported function,即 "被导出的" 函数),小写字母开始的函数仅能在本地内部使用,对于其他包来说是 "不可见" 的。这也是 Go 语言与其他语言的一个显著不同之处。

      再来看 test1 包,其中代码第一行声明了自己是 main 包,也就是可执行包。

    package main

      然后,import 语句中直接引用了 package1 这个包。

    import{
        "package1"
    }

      接下来的可执行程序主函数 main 中,通过 "包名+.+函数名" 的方式调用了 package1 包中的 Hello 函数。

      这个例子完整地演示了如何编写非执行包、如何在可执行包中引用自己编写的非执行包。package1 就是一个非执行包,而 test1 是一个可执行包,test1 包中调用了 package1 包中的 Hello 函数,输出了所需文字的信息。

  • 相关阅读:
    Manjaro 安装与初步使用
    hp 820 G3 驱动安装不上
    Linux Mint
    PHP模板引擎原理
    报名系统跟商品购物有点类似,可以参考一下他们的ER图
    tp5接口开发流程(思路版)
    mysql中主键和外键的作用,主表和从表如何区分,以及如何使用联合查询和TP5的联合查询
    关于会员-考生-考生自定义表单-预览打印
    PHP unserialize()和serialize两者的用法
    如何解决复杂的问题?如何在未知的领域里,解决需求?
  • 原文地址:https://www.cnblogs.com/zuoyang/p/15190443.html
Copyright © 2020-2023  润新知