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

golang fmt.printf()

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:2} //%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。 fmt.Printf("%#v\n", p) // main.point{x:1, y:2} //需要打印值的...阅读全文

博文 2015-04-21 03:00:01 benlightning

IntelliJ Idea 14 安装 Golang 插件 google-go-lang-idea-plugin 的方法

IDEA 的编辑器都很强悍,所以现在学Go 也想用他啊,无奈这个插件搞了好久,整理了下流程记录下 1. 当然是下载 IDEA 编辑器了 http://www.jetbrains.com/idea/download/ 附上旗舰版注册机地址 http://download.csdn.net/detail/abacaba/8240327 有购买能力的请尽力购买正版哦,这么好的IDE用盗版真心觉得很罪恶啊,无奈包包里的票票太少 2. 下载插件项目源码自行编译jar插件包 https://github.com/go-lang-plugin-org/go-lang-idea-plugin 将下载的zip包解压,然后执行 File -> open 操作打开该项目 打开该项目后,进行 SDK 和 模块配置 ...阅读全文

博文 2015-03-12 05:00:00 zsjangel

go build和go install的区别

go build通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hello.go $ lshello hello.go 当然我们也 可以通过-o选项来指定其他名字: $ go build -o mygo hello.go $ lsmygo hello.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: $ go build $ lsgo-examples hello.go go install与build命令相比,install命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。 go install编译...阅读全文

Go 系列教程 —— 16. 结构体

欢迎来到 [Golang 系列教程](/subject/2)的第 16 个教程。 ### 什么是结构体? 结构体是用户定义的类型,表示若干个字段(Field)的集合。有时应该把数据整合在一起,而不是让这些数据没有联系。这种情况下可以使用结构体。 例如,一个职员有 `firstName`、`lastName` 和 `age` 三个属性,而把这些属性组合在一个结构体 `employee` 中就很合理。 ### 结构体的声明 ```go type Employee struct { firstName string lastName string age int } ``` 在上面的代码片段里,声明了一个结构体类型 `Employee`,它有 `firstName`、`lastName` 和 `a...阅读全文

博文 2018-01-22 17:52:48 heyulong

Golang的Tag语法

我们可以通过Tag来增强结构体的定义,Tag会带上一些meta信息,在本文中我们将通过几个例子来深入了解Tag的用法。 结构 Struct是由一组field组成,每个field包括了名字(可选)和字段类型 package main import "fmt" type T1 struct { f1 string } type T2 struct { T1 f2 int64 f3, f4 float64 } func main() { t := T2{T1{"foo"}, 1, 2, 3} fmt.Println(t.f1) // foo fmt.Println(t.T1.f1) // foo fmt.Println(t.f2) // 1 } field T1是一个嵌入型field, 它并没有字...阅读全文

博文 2018-08-27 15:35:22 OhBonsai

golang语言os.Stat()用法及功能

package main import ( "fmt" "os" ) func main() { fileinfo, err := os.Stat(`C:\Users\Administrator\Desktop\UninstallTool.zip`) if err != nil { panic(err) } fmt.Println(fileinfo.Name()) //获取文件名 fmt.Println(fileinfo.IsDir()) //判断是否是目录,返回bool类型 fmt.Println(fileinfo.ModTime()) //获取文件修改时间 fmt.Println(fileinfo.Mode()) fmt.Println(fileinfo.Size()) //获取文件大小...阅读全文

博文 2014-10-04 19:26:12 igolang

Go语言关于XML的读取与生成

要读取的XML如下: Loading video… what 这种结构的XML,其末节点是属性与文本并存的(网上看到的大部分教程都是属性节点就是属性节点,文本节点就是文本节点) 根据这个XML,生成对应的struct type StringResources struct { XMLName xml.Name `xml:"resources"` ResourceString []ResourceString `xm...阅读全文

博文 2015-06-17 23:02:07 windvix

Go后台项目实战

本项目完全使用原生开发,没有使用任何WEB框架(如:gin,beego,Martini等),和ORM(如:gorm,xorm,beego) 三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。 控制层/界面层 因为我的项目中并没有写WEB页面,所以就拿控制层来说,就是将你的请求从页面传到后台代码 服务层/业务逻辑层 针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑...阅读全文

博文 2018-07-23 14:34:50 陈_2ace

Golang项目目录结构组织

其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。 当然,首先要说的是环境变量$GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到$GOPATH中,多个项目用";"分隔。 Golang项目目录下一般有三个子目录: src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件 我们重点要关注的其实就是src文件夹中的目录结构。 举个例子比啥都强,目录结构如下: |-- |-- |-- |--al.go |-- |--a2.go |-- |--b1.go |--b2.go |-- |--c.go |-- |-- 各文件代码: a1...阅读全文

Go语言初学笔记-和Python的区别

Go诞生于Google, 是由以下三位计算机领域的大师写的 image 由于出身名门,Go在诞生之初就吸引了大批开发者的关注。诞生十年以来,已经有很多基于Go的应用,一直有传言Go在将来是要取代现在Java的位置。对于一门只有十年历史的新语言,Go的发展势头是相当迅猛的。国外的docker就是用Go写的,国内的七牛团队广泛使用Go。 而今如火如荼的区块链技术更是将Go推上了热潮。IOT设备连接协议也是Go语言开发技术居多。由此可见未来是属于Go和Python的天下。 go环境搭建 在官网下载go的安装包 如果是mac,可直接用brew安装: $ brew intall go 查看go版本 $ go version go version go1.10.3 darwin/amd64 go开发编辑...阅读全文

博文 2018-08-18 11:34:57 gccme

mgo使用指南

mgo使用指南 mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:http://labix.org/mgo。 golang.tc(golangtc.com)网站的数据存储就是是用的MongoDB+mgo。近一年使用下来表现良好。 API文档 下面是mgo、mgo/bson、mgo/txn的在线文档。 mgo GoDoc GoWalkermgo/bson GoDoc GoWalkermgo/txn GoDoc GoWalker 安装 安装mgo之前请先安装Golang和MongoDB,安装过程不再赘述。 安装bzr版本工具(mgo使用Bazaar作为版本控制系统,因安装的时候需要去Bazaar拉取代码)。...阅读全文

博文 2015-06-17 20:05:22 yangzhengyi68

Go语言输出打印--排坑

一.几种公共方法1)Print: 输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v)print 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它。可以再debug时候用fmt.Print(str)2)Println: 输出到控制台并换行fmt.Println(tmp) 3)Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形等)fmt.Printf("%d",a) 4)Sprintf:格式化并返回一个字符串而不带任何输出s := fmt.Sprintf("a %s", "string") fmt.Printf(s) 5)Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdou...阅读全文

博文 2019-08-08 22:33:00 Caesar_fbc8

golang中使用mongodb的操作类以及如何封装

mgo简介 mongodb官方没有关于go的mongodb的驱动,因此只能使用第三方驱动,mgo就是使用最多的一种。mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官网:http://labix.org/mgo 文档:http://godoc.org/gopkg.in/mgo.v2 安装与使用 安装 go get gopkg.in/mgo.v2 go中使用 package main import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) type Person struct { Id bson.ObjectId `bson:"_id"` Name string `bson:"...阅读全文

博文 2015-07-30 03:00:00 spnt

GO语言基础环境搭建以及HelloWorld

Go语言(golang)是Google推出的一种全新的编程语言。关于其详细介绍请自行百度,直接介绍基础开发环境配置。 1、安装GO安装包。 官方下载地址应该是 https://code.google.com/p/go/downloads/list 不过如果你在被墙了的话应该是无法访问该地址,这里是用的版本是go1.3.windows-386.msi,可直接百度文件名下载安装即可。 2、配置环境变量。 这里同Java环境变量配置很相似,配置项稍多。具体如下: 新建 变量名:GOBIN 变量值 :D:\Program Files (x86)\Go\bin 新建 变量名:GOARCH 变量值:386 新建 变量名:GOOS 变量值:windows 新建 变量名: GOROOT 变量值:c:\go ...阅读全文

博文 2015-05-27 16:00:00 PrinceTerence

golang指针与C指针的异同

总结一下golang中的指针与C语言的指针的用法。 总体一致: C的代码: ? 1 2 3 4 int *number; number = (int *) malloc(sizeof(int)); *number = 3; printf("%d\n", *number); golang的代码: ? 1 2 3 4 var pointer *int; pointer = new(int); *pointer = 3; fmt.Println(*pointer); 多重指针情况: C的代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 int **outer; int *inter; inter = (int *) malloc(sizeof(int)); *inter = ...阅读全文

博文 2014-10-25 10:00:01 zhjih123

一、Go语言的变量和常量

《Go Web 编程》《Go 语言编程》读书笔记 。 1.变量 变量是几乎所有编程语言中最基本的组成元素。从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 1.1 变量声明 对于纯粹的变量声明,Go语言引入关键字var,而类型信息放在变量名之后,形如: var variableName type var vname1, vname2, vname3 type 示例: var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map...阅读全文

博文 2015-11-10 10:00:01 chyljy

Golang文件名命名规则

1、平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 2、测试单元 文件名_test.go或者 文件名_平台_test.go。 例: path_test.go, path_windows_test.go 3、版本区分(猜测) 文件名_版本号等。 例:trap_windows_1.4.go 4、CPU类型区分, 汇编用的多 文件名_(平台:可选)_CPU类型. 例:vdso_linux_amd...阅读全文

博文 2016-09-22 07:00:01 zyjying520

golang操作gorm基本

前言 对于golang中使用gorm操作mysql,可能其他的操作都是固定的,唯一麻烦的就是字段的映射。 gorm允许自己定义一个表的结构映射,但是,golang中,首字母大写来表示public或者private,而gorm在做映射的时候,大写的转化是不一样的。这里就做一下区分。 1.直接使用表的机构映射 比如你用find之类不需要写表名称,直接用结构获取的情况下,struct的机构和数据库中的结构要一致,不一样的用gorm:"column:nameSpace",这个来说明,column里面就是你想要映射的名称。 2.定义自己的结构 这么定义的话,就不要求完全一样。 这里又分两种 一,你如果没有用row,直接一条语句末尾加Scan(&struct),这么来接受的,需要字段名称对应,也可以这个...阅读全文

博文 2019-09-29 14:33:10 aside section ._1OhGeD

Golang 项目目录结构组织

其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。 当然,首先要说的是环境变量GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到GOPATH中,多个项目用";"分隔。 Golang项目目录下一般有三个子目录: src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件 我们重点要关注的其实就是src文件夹中的目录结构。 举个例子比啥都强,目录结构如下: |-- |-- |-- |--al.go |-- |--a2.go |-- |--b1.go |--b2.go |-- |--c.go |-- |-- 各文件代码: a1.g...阅读全文

博文 2019-04-28 01:34:41 藍墨雪姫

GO语言为结构体排序

package main import ( "fmt" "io/ioutil" "sort" "time" ) type info struct { Name string Time time.Time } type newlist []*info func main() { l, e := getFilelist("./") if e != nil { fmt.Println(e) } sort.Sort(newlist(l)) //调用标准库的sort.Sort必须要先实现Len(),Less(),Swap() 三个方法. for _, v := range l { fmt.Println("文件名:", v.Name, "修改时间:", v.Time.Unix()) } } func ...阅读全文

博文 2015-11-07 12:00:05 fyxichen

GO编译环境搭建(基于SublimeText3)

1、我的机器是32位的win,可以去下面连接下载:http://download.csdn.net/detail/cumtwys/7695131 如果需要其他版本请到google官网下载(貌似被封了):http://code.google.com/p/go/downloads/list?q=OpSys-Windows+Type%3DInstaller 2、配置系统环境变量 新建变量名:GOBIN 变量值:C:\go\bin 新建变量名:GOARCH 变量值:386 新建变量名:GOOS 变量值:windows 新建变量名:GOROOT 变量值:C:\go 编辑PATH变量,在最后添加 ;%GOBIN% 3、配置Sublime Text 按住【Ctrl+shift+p】,在弹出框内输入【ins...阅读全文

博文 2015-02-22 01:00:01 cumtwys

golang中json.Number妙用

最近跟某斯调试一个API接口,接口返回数据是json格式 ,按文档描述是一个整型数据,于是定义如下 type Data struct { Api int `json:"api"` } 在入参相同的情况下,第一次调用,得到的结果是: {"api":1} 然而第二次调用,得到结果却是: {"api":"1"} 与对方开发人员沟通后发现这是一个bug,由于流程问题,没办法立即修改上线,想想还是我做兼容比较好,效果是既能解析于{"api":1},也能够解析{"api":"1"},于是我想到了json.Number,Number类型定义如下 The representation of numbers is similar to that used in most programming languag...阅读全文

博文 2018-07-17 23:34:46 wu_sphinx

go的json输出

// code_030_JSON_key_value project main.go package main import ( "encoding/json" "fmt" ) //Go语言内建对JSON的支持。 //使用Go语言内置的encoding/json 标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据 type IT struct { Company string Subjects []string IsOk bool Price float64 } type University struct { //ID int //所学专业的ID Name string `json:"-"` //大学名称 //Department string //系 //Major stri...阅读全文

博文 2018-10-07 00:35:10 ck_god

Go编程——变量、函数导出与首字母大写

Go编程——变量、函数导出与首字母大写 标识符可被 导出 以允许从另一个包访问。 同时符合以下条件即为已导出标识 1、标识符名的第一个字符为Unicode大写字母(Unicode类别“Lu”); 2、该标识符在包块中已声明或为字段名或方法名。 以程序导入gotest/even包为例 package main import ( "even" "fmt" ) func main() { i:=even.I fmt.Printf("Is %d even? %v\n", i, even.Even(i)) } package even var I int = 123 func Even(i int) bool { return i%2==0 } func odd(i int) bool { retur...阅读全文

博文 2015-06-18 09:02:12 typ2004

os.Args[0] 的获取的值的问题

默认情况下 os.Args[0]应该返回可执行文件的路径 ``` go package main import ( "fmt" "os" ) func main() { fmt.Println("test the os package") fmt.Println("Args len", len(os.Args)) for i, arg := range os.Args { fmt.Println("arg", i) fmt.Println("arg", arg) } fileInfo, err := os.Stat("E:\\go\\bin\\studygolang.exe") if err != nil { f...阅读全文

golang 定时器

上网查了下相关资料,基本上都介绍的是github.com\robfig\cron这个包来执行定时任务,试了下确实可以执行。但是此包下没有删 除任务的方法,只有暂停的方法(Stop),若要停止之前的任务只执行新定义的任务,除非服务器重启再定义新任务。后来又参考了一下其他人的建议,采用了 github.com\jakecoffman\cron这个包。后者是在前者的基础上做了一定的修改,给每个任务添加的一个新属性Name,然后新添加 一个remove(name)方法,用来删除指定名字的任务,经测试使用后可正常删除任务,只不过之前的计划任务名得新建一个全局变量来存储。 以下先简单介绍下定义时间集合的信息: 字段名 是否必须 允许的值 允许的特定字符 秒(Seconds) 是 0-59 * / , -...阅读全文

博文 2016-08-12 12:00:00 zhangym

Go语言下与MongoDB通信-使用mgo

mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:http://labix.org/mgo。 golang.tc(golangtc.com)网站的数据存储就是是用的MongoDB+mgo。近一年使用下来表现良好。 API文档 下面是mgo、mgo/bson、mgo/txn的在线文档。 •mgo GoDoc GoWalker •mgo/bson GoDoc GoWalker •mgo/txn GoDoc GoWalker 安装 安装mgo之前请先安装Golang和MongoDB,安装过程不再赘述。 安装bzr版本工具(mgo使用Bazaar...阅读全文

自己封装的golang 操作数据库方法

这个是我用Go写的第一个东东,可能还存在些BUG没有测试到。这里主要是提供一个参考。各位可以改写成自己的风格。 在命令行下输入如下两条命令,进行安装 go get github.com/male110/SimpleDb go install github.com/male110/SimpleDb Go语言的数据库操作,只能用Rows.Scan来一次性读取所有列。感觉很不习惯,我还是习惯按照列名来一列列的取数据。所以我自己封装了一个数据结构MyRows,MyRows实现了一个函数,GetValue(name string, value interface{})可以按列名来取数据。如下所示: err = rows.GetValue("IsBoy", &isBoy) if err != nil {...阅读全文

博文 2014-10-04 19:27:14 王岩0001

Golang中JSON解析结构体

一、StructTag介绍StructTag是go语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如json的转化。 使用的时候只要把标记的字段用两个包起来即可,标签内的语法形式通常为key:”value”` ,多个标记用空格隔开。 1234type tagTest struct { tagA string `TagA` tagB int `TagB`} 二、Struct转Json要想把struct转化成json,只要把结构体内的字段名设置成导出状态,也就是把首字母大写就行了,默认情况下,转化后的json中的key值和结构体中的字段名是一样的。 1234567891011121314151617181920212223package mainimport ( "fm...阅读全文

博文 2018-05-17 09:27:59 马谦的博客

golang中如何获得函数的函数名

如何获取golang中的函数的名字, 这里需要用到反射. 可以看如下代码. 重点使用 runtime.FuncForPC 这个函数获取函数名. 使用strings.FieldsFunc 对得到的带 路径名和包名的 函数名进行必要的处理. package main import ( "fmt" "reflect" "runtime" "strings" // "seps" "runtime/debug" ) func foo() { } func GetFunctionName(i interface{}, seps ...rune) string { // 获取函数名称 fn := runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() ...阅读全文

博文 2018-12-20 17:34:46 个00个

golang的win10安装

golang的安装: windows10 下载安装包: 国内的(不用翻墙): https://studygolang.com/ 官网(需翻墙): https://golang.org/ 安装: 双击安装, 一步步安装完成即可 配置环境变量 打开设置 Snipaste_2018-11-18_16-29-12.png 搜索框输入: 环境变量 --> 选择系统环境变量 Snipaste_2018-11-18_16-29-57.png 点击: 环境变量 Snipaste_2018-11-18_16-30-12.png 增加GOROOT: 新建 --> 变量名为: GOROOT(必须大写),变量值: 你安装时的go安装路径(我这里是用的c盘) Snipaste_2018-11-19_01-02-18....阅读全文

博文 2018-11-19 02:34:38 陈卧虫

go语言JSON处理

https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.2.md JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。JSON由于比XML更小、更快,更易解析,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。目前我们看到很多的开放平台,基本上都是采用了JSON作为他们的数据交互的接口。既然JSON在Web开...阅读全文

博文 2016-04-22 15:00:01 liukuan73

go实用小技能-自定义log输出格式

我们在使用go开发项目的时候,常常需要使用log包输出日志,go自带的log包默认输入格式为:时间+内容。 其实go还提供了几个很简单的输出选项 const ( Ldate = 1 << iota // 日期: 2009/01/23 Ltime // 时间: 01:23:23 Lmicroseconds // 微秒: 01:23:23.123123. Llongfile // 路径+文件名+行号: /a/b/c/d.go:23 Lshortfile // 文件名+行号: d.go:23 LUTC // 使用标准的UTC时间格式 LstdFlags = Ldate | Ltime // 默认 ) package main import ( "log" ) func main() { Ldef...阅读全文

博文 2016-12-22 09:00:02 dogo_小小人物

GO声明变量和常量的方法

1、定义变量 (1):定义一个变量,变量名为"vName",type为变量的类型 var vName type (2):定义多个变量并且变量的类型都是type,变量名之间用逗号隔开 var vName1,vName2,...vNameN type (3) 定义变量并初始化值,变量的值为value var vName type=value (4)同时定义并初始化多个相同类型的变量的值 var vName1,vName2,vName3 type=v1,v2,v3 (5) 同时定义多个变量的值,变量类型可以不同,会自动根据值的类型来初始化 var v...阅读全文

博文 2016-11-05 03:00:01 skh2015java

golang结构体-对象和指针-函数赋予

1、定义一个结构体type User struct { userid int username string password string} 2、初始化一个结构体 有两种情况,一是得到结构体的对象,一是得到结构的对象指针,分别有三种方式: //第1种方式,先声明对象,再初始化 var player1 Player player1.userid = 1 player1.username = "lina1" player1.password = "123456" //第2种方式,声明同时初始化 player2 := Player{2, "lina2", "123456"} //第3种方式,通过 field:value 形式初始化,该方式可以灵活初始化字段的顺序 player3 := Playe...阅读全文

博文 2018-08-15 20:36:41 amu_lucifer

Go获取文件名除去后缀

package main import ( "fmt" "path" "strings" ) func main() { fullFilename := "test.txt" //fmt.Println("fullFilename =", fullFilename) var filenameWithSuffix string filenameWithSuffix = path.Base(fullFilename) //fmt.Println("filenameWithSuffix =", filenameWithSuffix) var fileSuffix string fileSuffix = path.Ext(filenameWithSuffix) //fmt.Println("file...阅读全文

博文 2016-10-31 04:00:01 MR1269427885

关于 golang fmt.printf()输出格式化

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:2} //%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。 fmt.Printf("%#v\n", p) // main.point{x:1, y:2} //需要打印值的...阅读全文

博文 2018-08-29 12:30:01 i6010

go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory E:\tttttt (outside

使用go mod的方法 单独从大工程里拷出小文件想新建新文件工程时,部分文件路径名报红,出现报错 go: cannot determine module path for source directory E:\tttttt (outside GOPATH, no import comments) 1.在src 目录下新建 go.mod文件 2. go.mod中第一行加入一行内容 module src 3.goland中 file->Settings->Go->Go Modules中勾上 Enable Go Modules(vgo) integration 右键src目录,以goland工程打开,报红消...阅读全文

博文 2019-05-12 17:31:03 ilini

Go struct

// xuhh_go_struct project main.go /* tips : 具有相同字段序列(字段名,类型,标签,顺序)的匿名struct 属于同一类型 struct 值类型。 赋值和传参都会复制全部内容。 struct 可以内嵌,但是不能同时内嵌同一类型和其指针类型 struct 可以匿名字段,字段包括任何类型。 struct 在内嵌多个类型的时候,需要注意如果不同类型之间拥有相同字段名的时候,调用这些类型的字段的时候 需要加上类型名。 相同的struct 可以进行 == != = 操作。 */ package main import ( . "fmt" ) type Class struct { strClassname string nClassNum int strAdr...阅读全文

博文 2015-06-18 09:09:12 xuheazx

golang中的json处理

JSON(Javascript Object Notation)已经成为了一种非常流行的数据交换格式,golang 自然不会忽视对 json 的支持,golang 自带的标准库就可以方便的处理 json。另外,推荐一种号称全世界最快的 JSON 解析器 -- jsoniter。 简介 json 中提供的处理 json 的标准包是 encoding/json,主要使用的是以下两个方法: // 序列化 func Marshal(v interface{}) ([]byte, error) // 反序列化 func Unmarshal(data []byte, v interface{}) error 序列化前后的数据结构有以下的对应关系: bool, for JSON booleans floa...阅读全文

博文 2017-06-17 12:05:55 happen

Golang Printf、Sprintf 、Fprintf 格式化

https://www.cnblogs.com/dfsxh/p/10316601.html /* %v 输出结构体 {10 30} %+v 输出结构体显示字段名 {one:10 tow:30} %#v 输出结构体源代码片段 main.Point{one:10, tow:30} %T 输出值的类型 main.Point %t 输出格式化布尔值 true %d输出标准的十进制格式化 100 %b输出标准的二进制格式化 99 对应 1100011 %c输出定整数的对应字符 99 对应 c %x输出十六进制编码 99 对应 63 %f输出十进制格式化 99 对应 63 %e输出科学技科学记数法表示形式 123400000.0 对应 1.234000e+08 %E输出科学技科学记数法表示形式 1234...阅读全文

博文 2019-06-18 14:02:47 w85278161

windows上搭建eclipse+golang开发环境

周末没事,打算学一门周末语言,最后选了目前比较热门的go语言,平时习惯了使用eclipse作为主要开发工具,这里讲述一下如何在eclipse搭建golang开发环境,主要是安装goclipse插件。 1、下载安装go并配置环境变量 由于国内无法访问Google,要下载官网的安装包需走代理,如果没有,可以在golang中国下载http://www.golangtc.com/download,根据系统位数选择zip文件下载,此为免安装版,直接解压,配置环境变量 新建变量名GOROOT,value=go的安装目录 在path上天剑%GOROOT%\bin 新建变量名GOPATH,自定义目录,必须配置此变量名 至此go已经安装完毕,测试是否正常,打开cmd,执行go命令,看是否有打印 如果没有请查看...阅读全文

博文 2017-02-19 08:00:24 kyle_chan

golang学习的点点滴滴:匿名字段

定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go语言支持只提供类型,而不写字段名的方式,也就是匿名字段,或称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。 让我们来看一个例子,让上面说的这些更具体化。 package main import "fmt" type Human struct { name string age int weight int } type Student struct { Human // 匿名字段,那么默认Student就包含了Human的所有字段 speciality string } func main() { // 我们初始化一个学生 mark := S...阅读全文

博文 2014-10-04 19:27:22 亓斌哥哥

gorm快速使用

## gorm ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写. gorm, github.com/jinzhu/gorm 全特性 ORM (几乎包含所有特性). ## 模型定义 模型一般都是普通的 Golang 的结构体,Go 的基本数据类型,或者指针。sql.Scanner 和 driver.Valuer,同时也支持接口。 ### gorm.Model gorm.Model 是一个包含一些基本字段的结构体,包含的字段有 ID,CreatedAt, UpdatedAt, DeletedAt。 你可以用它来嵌入到你的模型中,或者也可以用它来建立自己的模型.GORM 默认使用 ID 作为主键名。 ...阅读全文

博文 2019-12-26 19:03:28 bytemode

Go 终极指南:编写一个 Go 工具

我之前编写过一个叫 **gomodifytags** 的工具,它使我的生活变得很轻松。它会根据字段名称自动填充结构体标签字段。让我来展示一下它的功能: ![在 vim-go 中使用 gomodifytags 的一个示例](http://upload-images.jianshu.io/upload_images/2192094-880be71ebd4d9610.gif?imageMogr2/auto-orient/strip) 使用这样的工具可以很**容易管理**结构体的多个字段。该工具还可以添加和删除标签、管理标签选项(如 `omitempty`)、定义转换规则(`snake_case`、`camelCase` 等)等。但该工具是怎样工作的呢?它内部使用了什么 Go 包?有很多问题需要回答...阅读全文

博文 2017-10-27 01:53:11 oopsguy

全自动装机工具 OSinstall

“CloudBoot”(OSinstall)云装机平台,是金融云初创公司杭州云霁科技推出的一款X86服务器全自动装机工具,遵循Apache协议,完全开源免费。 “CloudBoot”中文名为云启装机平台,简称云装机,寓意是”云端装机,云之开始”,有以下两层含义:     对已经使用云计算的公司,实现物理机的全自动安装,是构建云的第一步。     对没有使用云计算的公司,全自动构建物理机资源池,像创建虚拟机一样方便的安装物理机,是未来迈向云计算架构的第一步...阅读全文

开源项目 2016-05-08 16:00:00 idcos

golang 解析cvs文件

//本程序是为了根据cvs的内容,自动生实时效果的报文,第七列为最后值 //用法: 程序名+文件名 package main import ( "encoding/csv" "flag" "fmt" "io" "log" "os" "strings" ) func main() { //参数 flag.Parse() fmt.Println(flag.NArg()) if flag.NArg() != 1 { log.Printf("usage: command + filename") return } //只取第1个参数做为文件名 file, err := os.Open(flag.Arg(0)) if err != nil { fmt.Println("Error:", err) re...阅读全文

博文 2015-06-17 20:17:46 zistxym