zoukankan      html  css  js  c++  java
  • golang学习之旅:方法、函数使用心得

    假设要在$GOPATH/pkg/$GOOS_$GOARCH/basepath/ProjectName/目录下开发一个名为xxx的package。(这里basepath指的是github.com/michael-lau)

    步骤如下:

    • 在$GOPATH/pkg/$GOOS_$GOARCH/basepath/ProjectName/目录下新建一个目录,命名为A(目录的名字可以任取,和包名没有关系,只要最终客户端程序import的时候保持和这个目录一致即可。不过推荐和包名一致)。
    • 然后在A这个目录下编写.go文件,这些.go文件的package必须都是xxx。由于在一个包下面,这些.go文件定义的变量可以互相访问。
    • 接着就可以build,进入A目录,然后输入命令:go build,没有任何输出的话代表构建成功;
    • 最后执行命令:go install,就会在$GOPATH/pkg/$GOOS_$GOARCH/basepath /ProjectName/下面产生一个名为A.a的文件。
    • 最后客户端就可以引用该包了。

    客户端程序引用方式:

    import“basepath/ProjectName/A”

    //由于包名是xxx,则引用的时候这样引用:

    xxx.func()

    一个包一个文件夹。一个包可能有多个.go文件,这些包中的东西(函数,变量,常量,类型)可能分布在不同的文件中。

    包名.函数:os.Chdir(),在liteIDE中提示的颜色:红色

    包名.变量:os.Args,在liteIDE中提示的颜色:蓝色

    包名.常量:os.DevNull,在liteIDE中提示的颜色:紫色

    包名.struct类型:os.File

    包名.interface类型: os.FileInfo

    包名.interface类型.函数:os.FileInfo.Mode()

    典型使用模式:

    先获取一个对象,再调用对象的方法。比如

    获取对象的方法一:包名.new函数, os.NewFile(1,"test.go")返回一个*File

    获取对象的方法二:自己初始化一个struct, 但有时候权限问题无法访问对于的struct,比如&os.File{}返回一个*File,但实际上File内部是一个指向file的指向,这个还没有初始化,会报错的。比如如下例子:

    file1:=os.NewFile(1,"uestcbook.exe")

    fmt.Println(file1.Name())

    fmt.Println("------------")

    //file2 := &os.File{}

    //fmt.Println(file2.Name())会报错

  • 相关阅读:
    ActiveMQ服务安装
    @Transactional 注解失效场景
    java中public、private、 protected、friendly
    接口保证幂等性是基本的要求,那么幂等性你们是怎么做的 ?
    android中Toast,makeText()的用法
    android中OKHttpClient工具类的用法(向服务器发送请求,并得到响应)
    android与服务器交互
    Android Studio中Make Project、Clean Project、Rebuild Project 的作用
    android如何真机调试
    URI中的fragment以及URI的说明
  • 原文地址:https://www.cnblogs.com/tsiangleo/p/4483379.html
Copyright © 2011-2022 走看看