• GO工程和包


    转载:http://blog.csdn.net/achelloworld/article/details/43956831

    Go语言中,包是函数与数据的集合,用package定义一个包,包的名字不一定要跟文件名字一样,接下来,将学习如何使用Go语言的包。

    首先,我们创建一个Stack包,然后用一个主程序来调用这个包里面的方法。这实际上涉及到Go语言中的工程的分包和编译。Go语言是这么来配置它的工程的,如下图

        

    其中package是工程的根目录,我们需要事先设置环境变量GOPATH,如下

        

    而bin目录和pkg目录是go编译自动生成的,而src是手动创建的。所以创建工程的步骤大致是

    (1)进入到package目录,即工程根目录

    (2)执行mkdir src,创建一个src源文件存放目录

    (3)在源文件目录中创建一个stack包,即mkdir stack

    (4)再创建一个test包,用于测试stack的功能,此包中为主程序

    (5)在src目录下,执行go install stack,在src外生成了pkg文件夹,linux_386代表执行平台

    (6)在src目录下,执行go install test,在src外生成了bin文件夹,里面得到的就是可执行文件了

    以上就是Go语言的工程构建步骤与注意事项,注意一定不要忘了GOPATH的设置

    如果需要查看Go语言相关的环境变量,使用命令go env即可,如下

      

    接下来贴上stack.gotest.go文件的代码。

    stack.go

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. package stack  
    2.   
    3. import (  
    4.     "strconv"       //此包提供了基本数据类型转化为字符串,或者由字符串转化为基本数据类型  
    5. )  
    6.   
    7. type Stack struct {  
    8.     i int  
    9.     data [20]int  
    10. }  
    11.   
    12. func (s *Stack) Push(k int){  
    13.     s.data[s.i] = k  
    14.     s.i++  
    15. }  
    16.   
    17. func (s *Stack) Pop(ret int) {  
    18.     s.i--  
    19.     ret = s.data[s.i]  
    20. }  
    21.   
    22. func (s *Stack) String() string {  
    23.     var str string  
    24.     for i := 0; i < s.i; i++ {  
    25.         str = str + "[" + strconv.Itoa(i) + ":" + strconv.Itoa(s.data[i]) + "]"  
    26.     }  
    27.     return str  
    28. }  


    test.go

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
      1. package main  
      2.   
      3. import (  
      4.     "fmt"  
      5.     "stack"   
      6. )  
      7.   
      8. func main(){  
      9.     var st = new(stack.Stack)  
      10.     st.Push(1)  
      11.     st.Push(2)  
      12.     st.Push(3)  
      13.   
      14.     fmt.Println(st)  
      15. }  
  • 相关阅读:
    收集的java面试题
    重载和重写的区别
    java中封装的概念
    java中多态的概念
    vue中的$on,$emit,$once,$off源码实现
    js bind的实现
    对象的深拷贝
    v-for的简单实现
    v-for的显示过滤/排序结果
    ES6的数组方法之Array.from
  • 原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/6023035.html
Copyright © 2020-2023  润新知