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())会报错
golang学习之旅:方法、函数使用心得的更多相关文章
- C#学习笔记_06_方法&函数
06_方法&函数 方法的定义 方法就是一个功能的集合,可以把程序中某段具有特殊功能的代码提取出来: 声明方法 [ 访问权限修饰符 ] [ 其他的修饰符 ] 返回值类型 方法名 ( [形参列表] ...
- golang学习之旅:使用go语言操作mysql数据库
1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本.这里选择了Go-MySQL-Driver这个实现.地址是:https://github.com/go-s ...
- golang学习之旅:搭建go语言开发环境
从今天起,将学习go语言.今天翻了一下许式伟前辈写的<Go语言编程>中的简要介绍:Go语言——互联网时代的C语言.前面的序中介绍了Go语言的很多特性,很强大,迫不及待地想要一探究竟,于是便 ...
- golang学习之旅:官方文档汇总
The Go Programming Language Specification:http://localhost:8080/ref/spec学习Constants.Variables.Types. ...
- C++学习之旅get、getline的使用方法
C++学习之旅get.getline的使用方法 面向行的输入:cin.getline(). 该函数读取整行.它使用通过回车键输入的换行符来确定输入结尾.要调用这样的方法,能够使用cin.getline ...
- Dart语言学习(十五) Dart函数方法
Dart函数方法可分为两类: 一.内置方法/函数: print(); 二.自定义方法: 自定义方法的基本格式: 返回类型 方法名称(参数1,参数2,...){ 方法体 return 返回值; } vo ...
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
本节的主要讨论内容是有关dict字典的一些常用的方法函数的使用和范例展示. 1. clear清除字典数据 语法结构如下: dict_obj.clear() 示例代码如下: dict1 = {'web' ...
- 【原】Java学习笔记008 - 方法(函数)
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...
- python学习12-反射 判断函数与方法(转载)
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): passpri ...
随机推荐
- 苹果IOS开发者账号总结--发布应用APP时team name是否可以随意写?
个人账号(Individual): 费用99美金一年, 该账号在App Store销售者只能显示个人的ID,比如zhitian zhang,单人使用.个人账号只能有一个开发者.100个苹果的iOS设备 ...
- IE8 HACK介绍
1.‘\9’: eg:.test { color/*\**/: blue\9 }.header {width:300px;} /* 所有浏览器*/.header {width/*\**/:330px\ ...
- [数据库]漫谈ElasticSearch关于ES性能调优几件必须知道的事(转)
ElasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人 ...
- Webwork 学习之路【07】文件上传下载
Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺 ...
- NHibernate无法将类型“System.Collections.Generic.IList<T>”隐式转换为“System.Collections.Generic.IList<IT>
API有一个需要实现的抽象方法: public IList<IPermission> GetPermissions(); 需要注意的是IList<IPermission>这个泛 ...
- 服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)
Software-configured service chaining provides the capability to dynamically include best-of-b ...
- word2vec使用说明(google工具包)
word2vec使用说明 转自:http://jacoxu.com/?p=1084. Google的word2vec官网:https://code.google.com/p/word2vec/ 下 ...
- Repeater——数据库控件学习
1.Repeater控件的使用:(用于重复加载一些内容,把要重复加载的代码写在ItemTemplate里面) 脱完控件后,在设计视图中配置数据源即可~ 2.ListView(数据显示,分页此控件一拖千 ...
- 【jQuery EasyUI系列】使用属性介绍
1.ValidateBox The validatebox is designed to validate the form input fields.If users enter invalid v ...
- esayUi中datagrid中json串为空时,显示上一次数据的解决方法
function initSearchProject(startDate,finishDate,flag) { $("#finishDate").val(finish ...