Go语言中文网 为您找到相关结果 48

go/golang main() init()方法的调用

main() ,init()方法是go中默认的两个方法,两个保留的关键字。 init()方法 是在任何package中都可以出现,但是建议 每个package中只包含一个init()函数比较好,容易理解。 但是main() 方法只能用在package main 中。 Go程序会自动调用init()和main(),所以你不需要在任何地方调用这两个函数。每个 package中的init函数都是可选的,但package main就必须包含一个main函数。 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时 将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可 能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。当一个包被...阅读全文

博文 2015-10-20 13:00:05 u011156212

Go项目结构和模块导入

Go项目结构和模块导入 golang项目结构与其他语言类似,但是仍然有一些需要注意的地方。 项目结构 环境配置 go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置 export GOPATH=/home/t/gospace 对于GOPATH来说,允许多个项目目录(Unix中为“:”,Windows中为“;”)。 项目目录 在项目目录中,一般包含三个文件夹,分别为src,pkg和 bin。各个文件夹功能如下, src 存放golang源码 pkg 存放编译后的文件 bin 存放编译后可执行的文件 模块导入 在golang中,模块导入包括两种导入方式:相对路径和绝对路径。 相对导入 当前文件同一目录的model目录,但是不建议这种方式来import import (...阅读全文

博文 2015-09-18 03:00:00 coder2012

go Notepad++ 语法高亮

go 自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即 转自:http://www.cnblogs.com/potoofly/archive/2013/06/03/3115350.htm...阅读全文

博文 2014-10-30 03:00:01 yumuxu

golang import 下划线 的实现原理

这个操作经常是让很多人费解的一个操作符,请看下面这个import import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” ) // _操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数, // 要理解这个问题,需要看下面这个图,理解包是怎么按照顺序加载的: 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被 导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么会先将其它 包导入进来,然后再对这些包中的包级常量和变量进行初始化,接...阅读全文

博文 2015-09-28 18:00:03 webyh

go import用法

import "fmt"最常用的一种形式 import "./test"导入同一目录下test包中的内容 import f "fmt"导入fmt,并给他启别名f import . "fmt",将fmt启用别名".",这样就可以直接使用其内容,而不用再添加fmt,如fmt.Println可以直接写成Println import _ "fmt" 表示不使用该包,而是只是使用该包的init函数,并不显示的使用该包的其他内容。注意:这种形式的import,当import时就执行了fmt包中的init函数,而不能够使用该包的其他函数...阅读全文

博文 2015-11-26 18:00:00 chenbaoke

Goread:用Go编写的Google Reader的开源实现

《Goread:用Go编写的Google Reader的开源实现》作者对GR的现有开源实现并不满意,于是自己实现了一个版本——Goread,它具有如下特性:支持导入OPML、移动端支持良好、不需要安装其他支持、和GR有相同的键盘快捷键、简洁快速……详见: http://www.goread.io...阅读全文

golang自动导入postgresql脚本

直接代码 package main import ( "fmt" "golang-objective-go/dataFoundation/dataConvert" "io/ioutil" "os/exec" "strings" ) func main() { dir_list, e := ioutil.ReadDir("./") if e != nil { fmt.Println("read dir error") return } for _, v := range dir_list { fileName := v.Name() if strings.Contains(fileName, ".sql") { c := exec.Command("psql", "-d", "xxxx", "...阅读全文

博文 2015-08-19 03:00:00 ziyouchutuwenwu

notepad++ 的golang语法高亮

go自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2014-10-04 19:26:09 gzme

Wide 支持导入本地项目了!

该导入项目的方式是通过两个功能组合完成的: * 导入文件 * 解压 Zip ### 步骤 1. 在目标目录右键单击并在下拉菜单中选择“导入” ![](https://cloud.githubusercontent.com/assets/873584/6767938/42233628-d08a-11e4-9b1a-cc1864fa27a2.png) 2. 上传 Zip 文件 ![](https://cloud.githubusercontent.com/assets/873584/6767939/42246548-d08a-11e4-90f9-e5fe1760c229.png) ![](https://cloud.githubusercontent.co...阅读全文

Go 导入当前项目下的包

其实和其他语言很类似 import ( "../controllers" //这里就是导入上一级目录中的controllers "./models" //同一级目录中的models "./models/entitys" //当前目录下的entitys "../../routers" //上两级目录的routers ) 当然也可以把写好的组件放入$GoPath的src中,这样就不需要关心目录是哪一层,只需要类似这样调用就好了: import ( "myproject/controllers" //这里就是自己项目的名字+包名 ...阅读全文

博文 2017-01-24 11:00:03 KelvinQ

【嗜血GO笔记】Goclipse如何导入已有的GO项目

与其他的JAVA工程略有不同,你是不能在 “导入” 中找到GO项目。 我们需要通过以下的方式导入: 步奏一:如下图所示 步奏二:在创建的时候选中“Create project from existing source”-->在 Directory 中选中你要导入的程序,一般来说,如果你提前配置了GO 的环境,那么在Configure Go settings中是不需要做任何配置的。如下图 至此导入工程就完成了。希望能给刚学习GO的朋友一些帮助...阅读全文

博文 2015-02-11 23:00:00 嗜血程序员

golang 测试文件xxx_test

go 的版本:go version go1.4.2 windows/386 举例:如果golang的包在同一目录下,比如GOPATH下面src/test/ 目录下有包名package test 如果此时有 test.go 和 test_test.go,那么包导入的时候会自动忽略test_test.go的导入内容 总之,1、如果有多个.go文件时候,并且不都是*_test.go命名,其它命名*_test.go的文件的包都import不进去 2、如果多个.go文件都是*_test.go,则一定会有一个*_test.go文件可以被import 3、 所以最好的做法是在开发环境中不要命名*_test.go的文件,最终测试用例文件可以用*_test.go命...阅读全文

博文 2015-10-11 23:00:07 webyh

golang项目结构日记

最近再玩golang,在研究如何导入自己的模块的时候很是头疼。基本golang槽糕的设计——project既要设置$GOPATH又对项目结构有一定的要求(缺少一定的自由)(当然golang糟糕的设计远不止这方面,越是深入了解越是讨厌)。google好久才知道如何配置。网上blog里要么是同一篇文章各种转载(他喵的还不注明),要么不够清晰,各种尝试后终于成功,记录如下: 进入终端输入命令 mkdir -p goproject/src/goproject cd goproject touch install cd src/goproject touch main.go cd .. mkdir test cd test && touch test.go 此时cd 到goproject应该是如下: ...阅读全文

博文 2016-07-16 02:00:01 danny_amos

notepad++ 的golang语法高亮

go 自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2014-10-04 19:26:09 potoofly

Golang 数据库增改查

1、需要导入驱动文件,需要执行 D:\GOPATH\src\GoData>go get 2、代码 // GoData project main.go package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) type user struct { t_id int t_username string t_password string t_mobile string t_registertime string t_lastpassword string t_question string t_answer string t_email string t_userType string } //...阅读全文

博文 2015-02-12 18:00:00 未来还没来

Golang- import 导入包的语法

一 包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" //当前文件同一目录的model目录,但是不建议这种方式import 绝对路径 import "shorturl/model" //加载GOPATH/src/shorturl/model模块 上面展示了一些import常用的几种方式,但是还有一些特殊的import,让很多新手很费解,下面是三种导...阅读全文

博文 2015-06-17 20:18:48 Crazy__Programmer

01.go-简介

简介 特点 支持并发,垃圾回收的编译型系统编程语言 导入没有使用过的包时会报错 安装 Mac os brew install go 第一个例子 建立一个文件,名为"hello.go",添加如下内容 package main import "fmt" func main() { fmt.Println("Hello, 世界") } 运行此段代码 E:\blog\go>go run hello.go Hello world!你好,世界...阅读全文

博文 2015-02-01 03:00:01 doit2015

golang 导入包

库有两种:静态库(.a、.lib)和动态库(.so、.dll) golang貌似不支持动态库(待确认。。。) go 中的 package 首先是要知道你的环境变量 [GOPATH] [GOPATH]目录下 创建以下目录 /bin /pkg /src src中 新建文件夹mymath [GOPATH]/src/mymath/math.go package mymath import ( "fmt" ) // Sqrt returns an approximation to the square root of x. func Add() {//大写,才能被外界调用 fmt.Println("===package mymath Add func ") } [GOPATH]/src/main.go...阅读全文

为应用增加daemon和graceful godaemon

godaemon是用来为应用增加daemon和graceful的。 **使用方法** * 只增加daemon功能 要让你的应用支持daemon很简单,只需导入godaemon包即可,无需再调用任何方法

package main
import(
    _ "github.com/tim1020/godaemon" //仅导入,包的init方法被自动调用,嵌入daemon功能
)
func main(){
    //正常的业务代码
    http.HandleFunc("/", func(w http.ResponseWriter, r...阅读全文

go语言导出内容到excel

package main import ( "os" "encoding/csv" ) func main() { f, err := os.Create("haha2.xls") if err != nil { panic(err) } defer f.Close() f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM w := csv.NewWriter(f) w.Write([]string{"编号","姓名","年龄"}) w.Write([]string{"1","张三","23"}) w.Write([]string{"2","李四","24"}) w.Write([]string{"3","王五","25"}) w.Write([]stri...阅读全文

博文 2015-06-17 23:07:24 abao2123

notepad++ 的golang语法高亮

go自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2015-06-21 02:01:09 LvanNeo

go学习笔记(01)- 简介

简介 特点 支持并发,垃圾回收的编译型系统编程语言 导入没有使用过的包时会报错 安装 Mac os brew install go 第一个例子 建立一个文件,名为”hello.go”,添加如下内容 package main import "fmt" func main() { fmt.Println("Hello, 世界") } 运行此段代码 E:\blog\go>go run hello.go Hello world!你好,世界! $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('阅读全文

博文 2015-03-23 13:00:01 sirius93

go 速学 - 01 - 安装与运行

目录 安装与运行 Go 特点 安装 第一个例子 摘要 go run 安装与运行 Go 特点 支持并发,垃圾回收的编译型系统编程语言 导入没有使用过的包时会报错 安装 Mac os brew install go 第一个例子 建立一个文件,名为 “hello.go”,添加如下内容 package main import "fmt" func main() { fmt.Println("Hello, 世界") } 运行此段代码 E:\blog\go>go run hello.go Hello world!你好,世界! $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().sp...阅读全文

博文 2015-05-06 16:00:00 mrseasons

notepad++ 的golang语法高亮

go自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即可 版权声明:本文为博主原创文章,未经博主允许不得转载...阅读全文

博文 2015-11-17 21:00:01 varding

NOTEPAD++ 配置golang 高亮显示

go自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2015-12-22 04:00:01 u011363248

Golang里调用C

Golang里调用C 2010-04-18 13:21:28| 分类:积累 | 标签:|字号大中小 订阅 Golang调用C分两个步骤:1 写一个C的wrapper,这个很简单;2 对wrapper做编译,这个步骤有点复杂,而且涉及众多中间文件。应该是有办法用自动化的工具简化这个过程的。 先来展示一下C程序。为了将描述集中在如何调用上,C的程序很简单: prints.h #ifndef PRINTS_HEAD void prints(char* str); #endif prints.c #include "prints.h" #include void prints(char* str) { printf("%s\n", str); } 之后是Golang对C的一个wr...阅读全文

博文 2015-06-17 20:02:16 x_focus

golang 工程中包的使用

同一个包的不同部分是可以放在同一个文件夹下的多个文件中的。 package main import "fmt" /* // 这里放在同一文件中没有任何的问题 type rect struct{ width, height int } func (r *rect) area() int { return r.width * r.height } func (r *rect) perim() int { return 2 * r.width + 2 * r.height } */ func main(){ r := rect{width:10,height:5} fmt.Println("area:",r.area()) fmt.Println("perim:",r.perim()) rp :=...阅读全文

博文 2016-04-29 09:00:01 gaopeiliang

Notepad++来运行golang

在run命令里输入:cmd /k go run "$(FULL_CURRENT_PATH)" & PAUSE & EXIT 保存为goRun,就可以了,配置从go目录中的misc找到对应的xml导入即可,那个userdefine.xml要去掉最开头和结束的注释,后把go.xml考到notepad++的plugins的api目录下 具体: 1.如果notepad++安装目录有userdefine.xml,就不go的userdefine.xml的内容添加到目录下的userdefine.xml里面,结构go的都做好了,把没注释的拷贝到对应的结构去就行了 2、同样functionList.xm...阅读全文

博文 2015-06-17 20:18:53 icyday

go项目make

1,go下载安装 这里写链接内容 2,编译顺序。 先source base 后source devtools 3,导入到path方法 export PATH=/bin:$PATH $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); ...阅读全文

博文 2016-02-26 19:00:01 guoer9973

golang导入包的理解

1、首先是包的引入原理 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行init函数(如果有的话),依次类推。等所有被导入的包都加载完毕了,就会开始对main包中的包级常量和变量进行初始化,然后执行main包中的init函数(如果存在的话),最后执行main函数。 2、包导入的语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ...阅读全文

博文 2017-04-08 11:00:29 杰克慢

golang中的xg作用

前面的文章里大概说过一些如何阅读xg的源代码的东西,但是后来由于太懒了,总是不想写一些很系统的东西,所以感觉还是把一些值得说的大概写一点,做个备忘。 事实上xg的通用的内容都被放在了src/cmd/gc里,而整个编译阶段最重要的东西就是go.y这个文件,因为这个是bison的语法定义文件。事实上go在编译阶段也只是将所有的内容按语法分析的结果放入NodeList这个数据结构里,然后export写成一个*.6(比如amd64的架构),这个.6的文件大概是这样子的: amd64 exports automatically generated from test.go in package "main" $$ // exports package main func "".main () var ...阅读全文

博文 2015-06-17 20:18:51 HopingWhite

go的非侵入式接口

什么是接口 接口就是一组方法的集合。比如下面这个例子,几何图形接口就包含了面积与周长两个方法,对于任何实现了这两个方法的type,都属于几何图形。 type Geometry interface { Area() float64 Perim() float64 } type Rect struct { Width, Height float64 } type Circle struct { Radius float64 } func (r Rect) Area() float64 { return r.Width * r.Height } func (r Rect) Perim() float64 { return 2 * (r.Width + r.Height) } func (c Cir...阅读全文

博文 2017-02-28 13:13:12 bigtom

golang、python时间戳和日期字符串的相互转化。。

go语言中,导入time包,很简单。 func main() { timestamp := time.Now().Unix() fmt.Println(tstime(timestamp)) fmt.Println(timets(tstime(timestamp))) } func tstime(a int64) string { tm := time.Unix(a, 0) return tm.Format("2006-01-02 15:04:05") } func timets(a string) int64 { t, err := time.Parse("2006-01-02 15:04:05", a) if err != nil { return 0 } return t.Unix() ...阅读全文

博文 2017-03-16 14:00:36 大洋的顶端

Golang中的字节序列化操作

在写网络程序的时候,我们经常需要将结构体或者整数等数据类型序列化成二进制的buffer串。或者从一个buffer中解析出来一个结构体出来,最典型的就是在协议的header部分表征head length 或者body length在拼包和拆包的过程中,需要按照规定的整数类型进行解析,且涉及到大小端序的问题。1.C中是怎么操作的在C中我们最简单的方法是用memcpy来一个整形数或者结构体等其他类型复制到一块内存中,然后在强转回需要的类型。如: // produce int a = 32; char *buf = (char *)malloc(sizeof(int)); memcpy(buf,&a,sizeof(int)); // consume int b ; memcpy(&b,buf,siz...阅读全文

博文 2017-02-09 17:21:03 gotaly

golang中("import cycle not allowed")错误

golang不允许循环导包,如果检测到import cycle,会在编译时报错,通常import cycle是因为设计错误或包的规划问题。 import( "package A" "package B" ) 如果package A中已经导入package B,而本package中又导入package B 或者 package A依赖package B,同时 package B 依赖package A 这样就会在编译时报 "import cycle not allowed"。 如何避免重复导入包的问题,就需要在设计时规划好包...阅读全文

博文 2017-03-05 13:55:22 skh2015java

导入自定义包,报错:The system cannot find the file specified.

新手一枚,有一个问题困扰我很久了。希望能得到好心人的帮助 问题:想测试一下自定义包的导入,一直报错,找不到文件的对应的路径 ```go package main import ( "fmt" "./struct_pack/structPack" ) func main() { struct1 := new(structPack.ExpStruct) struct1.Mi1 = 10 struct1.Mf1 = 16. fmt.Printf("Mi1 = %d\n", struct1.Mi1) fmt.Printf("Mf1 = %f\n", struct1.Mf1) } ``` 环境配置: goPath:D:\Go;E:\3-...阅读全文

goimportdot : 一个帮你迅速了解 golang 项目结构的工具

https://github.com/yqylovy/goimportdot/blob/master/docs/examples-cn/goimportdot_guide.md 这个工具旨在通过导入的包来判断哪些代码包是核心。不过多数情况下找包的关系还是很好找的。好处就是直观了一些。但多数情况下需要的还是结构之间的调用关系跟实用一些...阅读全文

博文 2017-05-29 00:07:42 疯长的胡茬

Golang 中使用多维 map

http://tnt.wicast.tk/2015/11/02/golang-multiple-dimension-map/ Golang 的 XML/JSON 解析库乍看使用起来很方便,只要构造一样结构的 Struct 就可以一下子导入到变量中去了.其实手工构造 Struct 非常容易出现结构偏差,而且最要命的是 Unmarshal() 执行的时候不是严格导入所以没有任何报错. 于是这两天写了一个给 Golang 用的 XML to Struct 生成器,希望能一劳永逸. 不过在制作过程中有遇到了一个不太容易发现的坑……也就是标题所说的多维 map. 什么是 map 首先 Golang 中的 map 与 JS,Py 里的 Map 函数并不是同一回事。前者是 Golang 中的一种基础数据类...阅读全文

博文 2017-09-22 06:30:01 grimm

Golang- import 导入包的语法

一 包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" //当前文件同一目录的model目录,但是不建议这种方式import 绝对路径 import "shorturl/model" //加载GOPATH/src/shorturl/model模块 上面展示了一些import常用的几种方式,但是还有一些特殊的import,让很多新手很费解,下面是三种导...阅读全文

博文 2017-10-14 12:03:10 cnu2m