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

golang fmt格式“占位符”

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people...阅读全文

Go--包引用介绍

最近在学习Go编程,本文简单的叙述如何在Go编程中使用包(包管理)。 和其他大多数语言一样,Go也存在包,并使用package关键字定义一个包。首先介绍在程序中如何引入包,引入包有以下几种方式: 1. 最简单的方式引入一个包的方式是直接引入包,例如: import "fmt" import "os" 2. 也可以通过下面的方式将包一块引入,并写在括号内: inport ( "fmt" "os" ) 通过上面的方式,可以引入系统包或第三方的包,下面重点介绍如何引入自定义的包和函数: 一般我们将主程序放在src的mian文件夹下(主程序中包含main函数,并将主程序的包名写为package main),将其他模块放在相应的文件夹下,例如下图所示 主函数在main.go文件中,主函数名也可以为其他...阅读全文

博文 2015-11-02 03:00:01 sunshiming

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

Golang中的正则表达式

Golang中的正则表达式 用法: 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”中的一个字符,“Perl类”见后面的说明 \大写Perl标记 匹配“Perl类”外的一个字符,“Perl类”见后面的说明 [:ASCII类名:] 匹配“ASCII类”中的一个字符,“ASCII类”见后面的说明 [:^ASCII类名:] 匹配“ASCII类”外的一个字符,“ASCII类”见后面的说明 \pUnicode普通类名 匹配“Unicode类”中的一个字符(仅普通类),“Unicode类”见后面的说明 \PUn...阅读全文

博文 2016-10-28 14:00:04 zfy1355

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

golang利用gob序列化struct对象保存到本地

golang可以通过json或gob来序列化struct对象,虽然json的序列化更为通用,但利用gob编码可以实现json所不能支持的struct的方法序列化,利用gob包序列化struct保存到本地也十分简单. gob包实现的序列化struct对象保存到本地 务必注意的是golang序列化有个小坑,就是struct里的字段必须要可导出也就是首字母大写 package main import ( "encoding/gob" "fmt" "os" ) type User struct { Id int Name string } func (this *User) Say() string { return this.Name + ` hello world ! ` } func main...阅读全文

博文 2015-04-22 03:00:00 reflectsky

golang -- 序列化 msgpack & json

下面总结一下go的序列化,通信中常用的格式:msgpack和json msgpack 安装: go get go get github.com/vmihailenco/msgpack go install github.com/vmihailenco/msgpack api:http://godoc.org/github.com/vmihailenco/msgpack func ExampleEncode() { b, err := msgpack.Marshal(true) fmt.Printf("%v %#v\n", err, b) // Output: []byte{0xc3} } func ExampleDecode() { var out bool err := msg...阅读全文

博文 2014-10-04 19:27:07 flyking

Go语言学习(三)枚举和类型

package main import "fmt" //1.枚举的使用 // 枚举指一系列相关的常量,比如下面关于一个星期中每天的定义。通过上一节的例子,我们 // 看到可以用在 const 后跟一对圆括号的方式定义一组常量,这种定义法在Go语言中通常用于定义 // 枚举值。Go语言并不支持众多其他语言明确支持的 enum 关键字。 // 下面是一个常规的枚举表示法,其中定义了一系列整型常量: const( Sunday = iota //0 Monday //1 Tuesday //2 Wedenesday //3 Thursday //4 Friday //5 Saturday //6 //同Go语言的其他符号(symbol)一样,以大写字母开头的常量在包外可见。 //以上例子中 num...阅读全文

博文 2016-03-23 23:00:06 mChenys

Go语言中如何写Get和Set方法

首先我们要知道,在Go中方法名首字母大写是要导出的方法(也就是公有方法,public),而小写则是不导出的方法(私有的,private)。 Go官方不提供对Get、Set方法的自动支持。对是否设置Get Set方法的推荐做法,见代码: package main import "fmt" type Foo struct { name string } // Set方法 func (f *Foo) SetName(name string) { f.name = name } // Get方法,无需使用Get,只要把首字母大写即可。 func (f Foo) Name() string { return f.name } func main() { p := Foo{} p.SetName("Ab...阅读全文

博文 2015-03-07 03:00:01 baiyuxiong

golang字符串首字母转化为大写

字符串首字母转化为大写 /** * 字符串首字母转化为大写 ios_bbbbbbbb -> iosBbbbbbbbb */ func strFirstToUpper(str string) string { temp := strings.Split(str, "_") var upperStr string for y := 0; y < len(temp); y++ { vv := []rune(temp[y]) if y != 0 { for i := 0; i < len(vv); i++ { if i == 0 { vv[i] -= 32 upperStr += string(vv[i]) // + string(vv[i+1]) } else { upperStr += stri...阅读全文

博文 2016-11-27 15:00:04 yang8023tao

go 语言解析复杂json

// Click here and start typing. package main import "fmt" import "encoding/json" type MxRecords struct { Value string Ttl int Priority int HostName string } type Data struct { MxRecords []MxRecords } type Response struct { Status string `json:"status"` Data Data `json:"data"` } type apiR struct { Response Response `json:"response"` } func main() { ...阅读全文

博文 2015-06-17 23:07:20 u010499721

Go语言解析json字符串

Go解析json格式字符串 Type Info struct{ Name string Age int Address string } 将json格式字符串解析给struct,只需将struct对象传给json.Unmarshal()函数 JsonStr := `{“name”:”yang”,”age”:24,”address”:”shenzhen”}` Var myInfo Info Json.unmarshal([]byte(JsonStr),&myInfo) 说明:在声明结构体有两个需要注意的地方,下面解释说明两种声明 第一种 Type Info struct{ Name string Age int Address string } 变量Name必须与json字符串name相同,并...阅读全文

博文 2015-06-17 23:01:30 newsyoung1

golang基础 -- 引用外部函数

如下所示,main.go文件中函数如果要调用与main.go同级目录下的func文件夹中func1.go中的Test()函数的具体实现方法。test |--func |--func1.go |--func2.go |--main.go在main.go文件中需要写入的是package main import( "test/func" ) func main(){ func.Test() } 其中需要注意的是: 1、test项目要在golang的$GOPATH路径下。 例如$GOPATH=/home/data而test文件路径是/homg/data/src/test那么main.go中import引用的路径就是"test/func"。如果文件路径是/home/data/src/XXX/test那...阅读全文

博文 2017-04-28 12:30:34 TonnyAlmend

golang json解析之大小写

package main import ( "encoding/json" "fmt" _ "time" ) type Header struct { FileName string Host string Offset string Timestamp string } type JsonData struct { header string `json:"xx"` Body string `json:"body"` } func main() { testJson() } func testJson() { var Data JsonData /*time1 := time.Now().Unix() x := Header{FileName: "yangheng", Host: "loc...阅读全文

博文 2015-10-13 21:00:16 webyh

Go语言”奇怪用法“有哪些?

自:http://blog.csdn.net/delphiwcdj/article/details/16903649 本文通过对A Tour of Go的实践,总结Go语言的基础用法。 1 Go语言”奇怪用法“有哪些? 1,go的变量声明顺序是:”先写变量名,再写类型名“,此与C/C++的语法孰优孰劣,可见下文解释: http://blog.golang.org/gos-declaration-syntax 2,go是通过package来组织的(与python类似),只有package名为main的包可以包含main函数,一个可执行程序有且仅有一个main包,通过import关键字来导入其他非main包。 3,可见性规则。go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可...阅读全文

博文 2016-04-06 18:00:06 ribavnu

超级简单ORM的实现方式

//根据传入的struct中定义的字段名自动小写首字母,查询得到的值自动插入struct中.当然也可以用tag查询,但是需要首先把tag取出来,然后做一个map把tag值和对应的field存储起来. func SelectOne(i interface{}, query string, a ...interface{}) { rows, err := db.Query(query, a...) if nil != err { log.Println(err) return } cols, err := rows.Columns() if nil != err { log.Println(err) return } is := ma...阅读全文

golang学习遭遇错误原因分析续

7、 error: reference to field ‘Printf’ in object which has no fields or methods f.Printf("%v", (Map(f,m)))问题点:在启用import f "fmt"后,如果再在函数中定义变量f时,如果使用f.Print**,这就会出现上述错误了。 8、error: argument 1 has incompatible type (cannot use type int64 as type time.Duration) time.Sleep(sec*1e9) ^问题点:Sleep的参数不正确,应该使用time.Duration进行类型转换。尽管time.Duration类型是使用type Duration...阅读全文

博文 2015-03-19 03:00:01 neujie

go处理json格式文件

关注开源中国很久了,但是一直没有发表过博客,原因是觉得自己能力还不够,因为这里的人们都让我仰望啊。一直在CSDN坚守着,但是,最近却总觉得那里气氛不对,遂来到了这里,来发表自己的看法,还有自己的学习笔记。 工作中使用的是go语言,其实自己学习的也不是很深入,只是勉强可以用来编几行代码,出了问题还是要跟API求救,曾设想过去读源码,但是却一直没有决心,幸好有很多testcase,提供了调用函数的方法。 花了好长时间,总是没有办法把我定义的文件decode了,把struct改了无数遍,运行testcase确实是正确的,一到我的程序就不行了。我都要打算放弃的时候,突然注意到了一件事情,示例中的Key都是大写的,我有种恍然大悟的感觉。毕竟为了简洁,go省去了好多关键字,像public,private...阅读全文

博文 2014-10-04 19:26:22 lunar_stud

Golang 方法method

方法method Go中虽没有class,但依旧有method 通过显示说明receiver来实现与某个类型的结合 只能为同一个包中的类型定义方法 receiver可以是类型的值或者指针 不存在方法重载 可以使用值或指针来调用方法,编译器会自动完成转换 从某种意义上来说,方法是函数的语法糖,因为receiver其实就是方法所接收的第一个参数(Method Value vs. Method Expression) 如果外部结构和嵌入结构存在同名方法,则优先调用外部结构的方法 类型别名不会拥有底层类型所附带的方法 方法可以调用结构中的非公开字段 package main import ( "fmt" ) type A struct { Name string } type B struct { ...阅读全文

博文 2017-10-17 22:00:01 skymyyang

初识golang,变量,常量,iota的学习

变量的定义: go总使用var来声明变量,在函数外面声明变量的方式有 var 变量1, 变量2, 变量3 [int] = 1, 2, 3,其中int这个类型声明可以省略。如果在函数内部声明可以使用以下这种更加简便的方法 变量1, 变量2, 变量3 := 1, 2, 3,这种方式只能在函数内使用。 常量的使用: go中常量可以定义为数组、布尔值、字符串等类型。使用const 常量名 [常量类型] = 常量值。 也可以采用分组声明的方式,如: const pi = 3.14 const prefix = "Go_" var i int var sum int 采用分组后: const ( pi = 3.14 prefix = "Go_" ) var ( i int sum int ) 在分组声明...阅读全文

博文 2014-10-04 19:27:38 vcity

sublime text / golang 自动完成

比如gfn,会成生以下go func() {CR CR}() 虽然保存后,gofmt会清除,但看着很不爽,要修改Go.sublime-package,把OD OA修改成20 0A,注意不能直接删除0D,似乎文件字节长度不对的话,Sublime会报错 ******************六一节补充***************** 研究发现Sublime的自动完成很SB,不分场合的,就算是字符串里也提示,对我们这种有洁癖的人来说怎么可以忍?再仔细看看,发现Var等一些智能提示的位置比较准,这是怎么回来?看了一轮,知道Go.sublime-package是Sublime自带的语法功能,其自动完成比较2;象Var这种则是插件里提供的,比较智能。 于是修改Go.sublime-package里的字节...阅读全文

博文 2015-06-01 23:00:02 max佩恩

golang 开发后端基础(1)

目标:使用 golang 开发 web 应用(半)IDE:visual studio code ,如果没用过就赶紧体验吧,下一代的开发工具。我用 visual studio code 写 rust golang c++ groovy javascript typescript powershell python, 用了就放不下。我除了 c++ 还是喜欢用 visual studio 几乎全用 visual studio code 来写 visual studio code 提供了对许多语言的扩展 开始今天分享先介绍一位神一般的人物 TJ Holowaychuk,程序员兼艺术家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名开源项目的...阅读全文

博文 2018-12-07 06:34:42 zidea

golang面向对象

golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class。 类的声明: //声明一个类 type People struct { Name string Sex int32 Address string } 这样就声明了一个类,其中没有public、protected、private的的声明。golang用另外一种做法来实现属性的访问权限:属性的开头字母是大写的则在其它包中可以被访问,否则只能在本包中访问。类的声明和方法亦是如此。 类方法声明: //声明一个类的方法 func (people People) Publish() { fmt.Println("method :Publish") } func (people *People) Sho...阅读全文

博文 2015-07-29 03:00:00 wangjunqiao

golang “is an unexported field of struct type c...

今天调试程序的时候发现程序报is an unexported field of struct type controllers,但是用fmt.Println打印结构能正常 ,只是放到模板引擎中就不能访问了。 查找错误过程: 在控制台能够通过FMT包打印结构体,那么证明语法上应该没有什么问题。而且发生错误只是在模板调用的时候发生,于是从调用的数据入手。原先的定义的结构是 type Good struct{ item string price float } 后来想起,GO语言中要提供给外面访问的方法或是结构体必须是首字母大写。这个结构体只有结构体名大写了,而里面的字段没有首字母大写,而GO语言在模板调用时应该认为是两个不同的过程,所以找不到值。于是把结构改为 type Good struct{...阅读全文

博文 2014-10-04 19:27:39 念念之间

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 马谦的博客

02.go-基本语法-包与可见性

基本语法 包 基本结构 包的基本结构如下 //程序运行的入口是包 `main`。 package main //导入包"fmt"和"math/rand" import ( "fmt" "math/rand" ) //或 import std "fmt" //指定别名 import "math" // 常量的定义 const PI = 3.14 // 全局变量的声明与赋值 var name = "gopher" // 一般类型声明 type newType int // 结构的声明 type gopher struct{} // 接口的声明 type golang interface{} // 函数的声明 func add(x int,y int) int{ return x + y } //...阅读全文

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

beegon 求助

`type Activity struct { //当前登录用户id userId int64 `json:"userId,omitempty"` keyword string `json:"keyword,omitempty"` } type ActivityGetOneInfo struct { ActivityInfo *Activity `json:"activity"` } a := Activity{1, "xxx"} c.Data["json"] = ActivityGetOneInfo{ActivityInfo: &a} c.ServeJSON()` 使用 beego 的时候,返回总是空的,是哪里写错了吗? 解决了...阅读全文

golang 字符串操作实例

package main import s "strings" import "fmt" var p = fmt.Println func main() { p("Contains: ", s.Contains("test", "es")) //是否包含 true p("Count: ", s.Count("test", "t")) //字符串出现字符的次数 2 p("HasPrefix: ", s.HasPrefix("test", "te")) //判断字符串首部 true p("HasSuffix: ", s.HasSuffix("test", "st")) //判断字符串结尾 true p("Index: ", s.Index("test", "e")) //查询字符串位置 1 p(...阅读全文

博文 2016-04-14 02:00:01 vipstone

golang实现中文汉字转拼音

载请注明出处: golang实现中文汉字转拼音 Golang 介绍 在一些的开发中,可能会遇到一些需要把中文汉字转成拼音的需求,在这里自己简单的用 golang 实现了一下中文转拼音的库。欢迎各位大佬前来指正。 2. 实现原理 实现起来的话,也非常简单,是将所有的汉字对应的 rune码,对应上它的拼音,也即是,有一个这样的 map[rune]string, 其中 key 为汉字的 rune码,value 就是汉字的拼音了。这个 map 是通过文件来生成的。文件内容如下: 3400=>qiū 3401=>tiàn 3404=>kuà 3405=>wǔ 3406=>yǐn 340C=>yí 3416=>xié 341C=>chóu 其中的拼音都是带声调的。不需要声调的话,可以替换成没有声调的字符...阅读全文

博文 2019-04-26 19:34:43 ChainZhang

golang xml 处理

golang xml 处理 生成xml时 属性必须大写 package main import ( "encoding/xml" "fmt" "os" ) type xmldas struct { XMLName xml.Name `xml:"das"` DataPort string `xml:"DataPort,attr"` Desc string `xml:"desc,attr"` Src xmlsource `xml:"source"` Dest xmldestination `xml:"destination"` } type xmlsource struct { Path string `xml:"path,attr"` Param string `xml:"param,attr...阅读全文

博文 2014-10-04 19:26:54 咖啡伴侣

Go 解析JSON

JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。JSON由于比XML更小、更快,更易解析,以及浏览器的內建快速解析支持,使得其更适用于网络数据传输领域。 解析到结构体 Go的JSON包中有如下函数 // json.go package main import ( "encoding/json" "fmt" ) type Server struct { ServerName string ServerIP string...阅读全文

博文 2016-04-17 01:00:03 ycyoes

GoLang 字符串处理大全

GoLang基础数据类型--->字符串处理大全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 欢迎加入: 高级运维工程师之路 598432640 任何一门语言都有它的好处,Golang的长处就是在于它的高并发能力,所以现在练习好Golang的用法,有利于你找一份好的工作哟~在学习任何一本语言,它的基本数据类型我们应该都得熟记于心,今天我们处理的主角就是字符串。让我们一起看看Golang对字符串的用法吧。我们此处主要针对strings这个包的某些方法的用法做演示。 1.Contains 1 /* 2 #!/usr/bin/env gorun 3 @author :yinzhengjie 4 Blog:http://www.cnblogs.com/yinzhengjie/ta...阅读全文

博文 2017-09-30 09:30:01 yinzhengjie

GoLang structTag说明

在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有小米点括起来的内容。形如 type User struct { UserId int `json:"user_id" bson:"user_id"` UserName string `json:"user_name" bson:"user_name"` } struct成员变量标签(Tag)说明 要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到mongodb啊等等。这个时候如果用属性名来作为键值可能不一定会符合项目要求。 所以呢就多了小米点的...阅读全文

博文 2017-12-18 23:00:01 faunjoe88

golang 结构体

1. 定义 结构体是将另个或者多个任意类型的命名变量组合在一起的聚合数据类型。 2. 成员变量 访问控制机制 如果一个结构体的成员变量名称是首字母大些的,那么这个变量是可导出的(即在其他包可以访问到)。 一个结构体可以同时包含可导出和不可导出的成员变量 type A struct { Hour int //可导出 minute int //不可导出 } 限制 命名结构体类型s不可以定义一个拥有相同结构体类型s的成员变量,也就是一个聚合类型不可以包含它自己。但是s中可以定义一个s的指针类型,即*s。如下: type B struct { value int //Next B //错误 Next *B //正确 } 3. 结构体比较 如果结构体的所有成员变量都可以比较,那么这个结构体是可以比较的...阅读全文

博文 2018-06-30 18:34:44 百味纯净水

一个Go语言接口和多操作系统实现的简单例子

尽管不是纯的OO语言,Go仍然提供了interface接口的功能,能够非常轻松地实现抽象与具体实现的分离。另外,按照文件名格式匹配的模式,Go程序可以自动帮你加载符合当前操作系统的对应接口实现(分析了编译时的.a包,发现编译时候自动匹配,并只把符合当前操作系统的实现打包),不需要程序员在程序里面使用if-else或者switch去实现,还算比较省心。 下面的例子,首先定义一个接口 I。接口I只有两个public的方法:Get() 和 Put()。注意方法名首字母必须大写。具体代码如下: //myservice.go package myinterface type I interface { Get() int Put(int) } 然后,按照Go的文件名匹配模式写不同操作系统的实现代码。具...阅读全文

go语言基础总结

// second //以下代码不可以直接使用,go语言中凡是声明过的变量都要使用,否则会报错 //以下代码只是go语言基础总结,包括了从变量声明到switch分支 package main import ( "fmt" ) //声明常量 const ( i = 0 s string = "Test" Start string = "go语言开始" //首字母大写的变量是公有的(待验证) ) //声明一组全局变量 var ( k int s2 string flag bool ) //枚举类型iota关键字,默认是0,每次自动增长1 const ( p1 = iota //p1=0 p2 = iota //p2=1 p3 //p3=2 p4 //p4=3 ) func testMap() {...阅读全文

博文 2014-10-04 19:26:25 wangfeiaini

Go语言学习笔记(六) [包]

日期:2014年7月30日 1、定义:包时函数和数据的集合。使用package关键字定义一个包,文件名不需要与包名一致,包名约定使用小写字符,Go包可以由多个文件组成,但是需要使用相同的package,包中方法的调用方式:.Fuction() 现在新建一个文件even.go,even.go的文件内容如下: package even //判断是否是偶数 func Even(i int) bool { return i % 2 == 0 } //判断是否是奇数 func odd(i int) bool { return i % 2 == 1 } 里面定义了两个函数,一个是Even,一个是odd,Even首字母大写,odd首字母小写,Even函数可以在包外访问,而odd...阅读全文

博文 2014-10-16 22:00:00 whxaing2011

build-web-application-with-golang笔记

2.2 Go基础 1. :=这个符号直接取代了var和type,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用var方式来定义全局变量。 2. rune是int32的别称,byte是uint8的别称。不同类型的变量之间不允许互相赋值或操作,不然会在编译时引起编译器报错。 3. 尽管int的长度是32 bit, 但int 与 int32并不可以互用。浮点数的类型有float32和float64两种(没有float类型),默认是float64。 4. 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量;小写字母开头的就是不可导出的,是私有变量。 5. 大写字母开头的函数也是一样,相当于class中的带public关键词的...阅读全文

博文 2014-11-25 17:00:26 壬癸甲乙

golang中json的使用

golang中使用json,经常会使用到两个函数 func Unmarshal(data []byte, v interface{}) error 1 将json反序列化成struct对象 2将json 反序列化到map中 3 将json反序列化到slice中 func Marshal(v interface{}) ([]byte, error)1将struct对象序列化成json 2将map序列化成json 3将slice序列化成json package main import ( "fmt" "encoding/json" ) type User struct { Username string Password string FriendName []string } func mai...阅读全文

博文 2017-03-05 05:55:41 skh2015java

Go语言:正则表达式的使用

Go语言的正则表达式使用很简单,示例代码: package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNumOrLowerLetter() findAndReplace() } //传入[]byte,返回[]byte func findTest() { str := "ab001234hah120210a880218end" reg := regexp.MustCompile("\\d{6}") //六位连续的数字 fmt.Println("------Find------") //...阅读全文

博文 2015-06-17 23:00:50 books1958

golang 设置 http response 响应头与坑

1、 设置WriteHeader的顺序问题 之前遇到个问题,在一段代码中这样设置WriteHeader,最后在header中取Name时怎么也取不到。 w.WriteHeader(201) w.Header().Set("Name", "my name is smallsoup") 用 golang 写 http server 时,可以很方便可通过 w.Header.Set(k, v) 来设置 http response 中 header 的内容。但是需要特别注意的是:某些时候不仅要修改 response的header ,还要修改 response的StatusCode。修改response的StatusCode 可以通过:w.WriteHeader(code) 来实现,例如: w.Writ...阅读全文

博文 2018-08-25 12:34:51 我的小碗汤

Golang elasticsearch 对接问题

es包gopkg.in/olivere/elastic.v3Golang操作es 过程中,定义struct 结果写入es的内容总是为空,后来发现,定义struct 首字母小写了,Golang中首字母小写表示私有,所以无法成功写入,改成共有的即可。刚学习,还不熟悉,做个记录// qnzsEs project main.gopackage mainimport ( "fmt" "log" "os" "database/sql" "time" _ "github.com/go-sql-driver/mysql" "gopkg.in/olivere/elastic.v3")var client *elastic.Clientvar db *sql.DBtype ques struct { qid s...阅读全文

博文 2017-02-09 17:32:25 guhongzi

GO json数据解析

json 是现在非常常见的数据传递方式, go本身也集成了json的生成和解析 引入包 import { "bytes" "encoding/json" } 解析 定义 json 对应的实体类, 准确的说是结构体 type GoAccessToken struct { AccessToken string ExpiresIn int } 创建该结构体的引用 goAccessToken := &GoAccessToken{} 通过Unmarshal去解析json字符串 err := json.Unmarshal(str, goAccessToken) 最终的 goAcessToken 为解析后的对象 如果发现对象中的成员变量没有值, 请检查成员变量的首字母是否大写, 注意, json 字符串的...阅读全文

博文 2017-02-10 14:44:35 yin32167

sspanel按月结算,修改go版代码【web api】

开头感谢sspanel的作者orvice大神!【转载请注明】 博主最近在搭建sspanel v3,中间坑确实挺多的,我回头开贴补充一下,ss服务器端我选择了orvice的shadowsocks-go mu版,因为作者是基于流量控制的机理,实际上奸商都是通过时间控制(233),所以我就寻思在作者的基础上加以修改,添加时间的限制。 上一篇博客中我实现了mysql api的修改,这一篇是web api。开始我以为orvice是在php api做控制的,看了api发现不是(还是webapi直接控制好啊,修改方便= =),数据库修改等请去看上一帖传送门 找到user结构体,路径shadowsocks-go-mu\mu\webapi\user.go 结构体修改,注意,这里的字段和json字段不能相同,不...阅读全文

博文 2016-09-21 12:00:03 w2180z