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

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...阅读全文

golang 字符串比较是否相等

golang字符串比较的三种常见方法 fmt.Println("go"=="go") fmt.Println("GO"=="go") fmt.Println(strings.Compare("GO","go")) fmt.Println(strings.Compare("go","go")) fmt.Println(strings.EqualFold("GO","go")) 输出 true false -1 0 true 1,自建方法“==”,区分大小写,最简单的方法 2,Compare函数,区分大小写,比自建方法“==”的速度要快,下面是注释 / Compare is included only for symmetry with package bytes. // It is usual...阅读全文

博文 2018-08-13 14:31:03 oqqYuan1234567890

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的反射reflect访问struct结构注意问题

通过反射查看struct里面结构信息: type Point struct { X int Y string } func main() { po := Point{3, "ddd"} s := reflect.ValueOf(&po).Elem() for i := 0; i < s.NumField(); i++ { f := s.Field(i) fmt.Printf(" %s %v \n", f.Type(), f.Interface()) } } 输出: int 3 string ddd 但是把Point里面X和Y改成小写的x,y;再执行程序的时候f.Interface会报错: panic: reflect.Value.Interface: cannot return value ...阅读全文

博文 2015-07-23 17:00:01 webyh

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 -- 字符串操作

相关包有strings, strconv 判断是否以某字符串打头/结尾 strings.HasPrefix(s string, prefix string) bool => 对应python的str.startswith strings.HasSuffix(s string, suffix string) bool => 对应python的str.endswith 字符串分割 strings.Split(s string, sep string) []string => 对应python的str.split 返回子串索引 strings.Index(s string, sub string) int => 对应python的str.index strings.LastIndex 最后一个匹配...阅读全文

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

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

Go的Deprecated标签

这几天,在Gogland EAP4升级后,无意中发现对Deprecated(小写也可以)进行了支持,以后API的废弃方法的标注会更好。 类似于以下代码: ```Go func Test(){ test1() } //Deprecated func test1(){ //do nothing } ``` 在支持的开发工具,将会看到删除线: ![123.png](http://studygolang.qiniudn.com/170203/250e374d2b197f1b5f8dd7e00938d8c0.png) 实际运行环境不需要Go1.8,我的是1.7.4。 可以通过标准库的build.AllowBinary常量看到效果...阅读全文

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

golang json处理struct未导出成员

我们用golang的json来marshal一个结构体的时候,结构体的未导出的成员将无法被json访问,也就是不会出现json编码的结果里(也就是小写的成员没法导出) 这个是由于技术的上问题引起的:golang的结构体里的成员的名字如果以小写字母开头,那么其他的包是无法访问的,也就是json无法访问我们的结构体里小写字母开头的成员 这个可以有两种方法解决 1. struct的成员用大写开头,然后加tag 2. 实现json.Marshaler接口 第一种方法比较常见这儿就不详细展开了 第二种方法如下 http://play.golang.org/p/AiTwUOWkiT package main import "fmt" import "encoding/json" func main() ...阅读全文

博文 2014-10-04 19:26:08 varding

初识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

golang package init可以多处定义

1、在golang中import 包A的时候,会自动隐式的调用该包A的init()函数(i字母小写)。 2、调用顺序:如果该包A又import了别的包B,会优先调用包B的init()函数,最后才调用main包的init()函数。 3、一个包的init()函数可以定义多个,每个都会被调用,调用的顺序按文件名排序...阅读全文

博文 2014-10-04 19:27:17 yearnfar

go语言之exec.Cmd

package main import ( "fmt" "log" "os/exec" "bytes" "strings" ) func main() { cmd := exec.Command("tr", "a-z", "A-Z") cmd.Stdin = strings.NewReader("some input") //输入 var out bytes.Buffer cmd.Stdout = &out //输出 err := cmd.Run() if err != nil { log.Fatal(err) } fmt.Printf("in all caps: %q\n", out.String()) } 作用:把小写转成大写 输出:in all caps: "SOME INPUT" 整...阅读全文

博文 2015-06-17 23:02:22 zistxym

golang解析yaml遇到的坑

golang 文件 package main import ( "fmt" "io/ioutil" "log" yaml "gopkg.in/yaml.v2" ) //Yaml the yaml file Cluster struct type Yaml struct { Testclu struct { //Testclu对应yaml文件里的testclu,yaml文件里的字母要小写,对大小写敏感 Hostips []string `yaml:"hostips,flow"` //Hostips是个数组,后面yaml:"要跟yaml文件里的hostips",否则找不到字段 Port string `yaml:"port"` DBuser string `yaml:"dbuser"` Pass...阅读全文

博文 2020-05-30 03:32:44 土豆哪里去挖_331f

基础知识 - Golang 中的正则表达式

基础知识 - Golang 中的正则表达式 ------------------------------------------------------------ Golang中的正则表达式 ------------------------------------------------------------ 用法: ------------------------------ 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”中的一个字符,“Perl类”见后面的说明 \大写Perl标记 匹配“P...阅读全文

博文 2018-08-23 00:31:31 weiyuefei

基础知识 - Golang 中的正则表达式

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

博文 2018-01-06 15:52:20 golove

gf框架之gvalid - 强大灵活的数据校验/表单校验模块

gf提供了非常强大易用的数据校验功能,通过gvalid包提供,封装了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验等特性。由于gf是模块化、低耦合设计,gvalid包也可以在项目中单独引入使用。 使用方式: ```go import "gitee.com/johng/gf/g/util/gvalid" ``` ### 校验规则 40种常用的校验规则: required 格式:required 说明:必需参数 required-if 格式:required-if:field,value,... 说明:必需参数(当任意所给定字段值与所给值相等时,即:当field字段的值为value时,当前验证字段为必须参数) required-unless 格式...阅读全文

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

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 壬癸甲乙

gomobile 真机 log 打出的日志跟踪

go mobile 开发的应用,真机调试时,我们期望看到log包打出的日志, 这时候就需要借用 Android Device Monitor 了。 我们的 go 代码中用最简单的 log.Println 打印屏幕尺寸,如下图: 在 Android Device Monitor 可以看到打印出来的数据: 这时候的几个关键搜索定位字: tag:golog 注意要小写。 app: org.golang pid:4896 text: org.golang Android Device Monitor 这个工具在 Android SDK 的 sdk/tools/monitor 这里...阅读全文

博文 2016-02-27 03:00:06 ghj1976

Go之Json的struct tag

自“灰子学技术”公众号原文链接:https://mp.weixin.qq.com/s/W6yL8aqXvmU7Vyd0riWIJw最近使用go的json包的时候,有一个struct tag标识,关于它的使用规则如下所示:1.这个标识在json调用marshal做序列化操作的时候,会把key值解析为struct tag定义的值。2.如果没有这个标识,在Key值是大写的时候,会将这个值的名字解析为序列化之后的Key值。如果是小写就会忽略,这个是因为Go规定首字母是大写字母是公有,小写字母是私有导致的。问题:一旦我们需要json序列化之后的结果中的Key值名称,希望是小写字母的时候,我们该怎么办?答案就是用struct tag,因为它可以讲大写字母重名命成小写字母。例子:​备注:小写字母 Mars...阅读全文

Golang生成随机数的方法总结

生成区间随机数 func RandInt(min, max int) int { if min >= max || min == 0 || max == 0 { return max } return rand.Intn(max-min) + min } 生成指定区间随机数(包括纯数字/纯字母/随机) const ( KC_RAND_KIND_NUM = 0 // 纯数字 KC_RAND_KIND_LOWER = 1 // 小写字母 KC_RAND_KIND_UPPER = 2 // 大写字母 KC_RAND_KIND_ALL = 3 // 数字、大小写字母 ) // 随机字符串 func Krand(size int, kind int) []byte { ikind, kinds, re...阅读全文

博文 2017-08-14 04:04:58 大雁儿

[笔记] Golang Test Case

1. 简介 Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。 2. 要求 文件名必须是`_test.go`结尾的,这样在执行`go test`的时候才会执行到相应的代码 你必须 import `testing`这个包 所有的测试用例函数必须是`Test`开头 测试用例会按照源代码中写的顺序依次执行 测试函数`TestXxx()`的参数是`testing.T`,我们可以使用该类型来记录错误或者是测试状态 测试格式:`func TestXxx (t *testing.T)`,`Xxx`部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如`Testintdiv`是错误的函数名。 函数中通过调用`testing.T`...阅读全文

博文 2016-05-09 02:00:02 loveyx

golang统计出其中英文字母、空格、数字和其它字符的个数

方法一 通过ASCII码表判断并统计 package main import "fmt" func charactortype() { var s2 string = "112aaaaFGG123 *&^%" var e,s,d,o int for i := o; i < len(s2); i++ { switch { case 64 < s2[i] && s2[i] < 91: e += 1 case 96 < s2[i] && s2[i] < 123: e += 1 case 47 < s2[i] && s2[i] < 58: d += 1 case s2[i] == 32: s += 1 default: o += 1 } } fmt.Printf("字符串英文字符个数是: %d\n"...阅读全文

golang 抽取随机数 随机字符

golang QQ:29295842 欢迎技术交流 go语言返回1-99之间随机数的方法 ```go package main import ( "fmt" "math/rand" ) func main() { max := big.NewInt(100) i, err := rand.Int(rand.Reader, max) } ``` 随机数 ```go package main import "fmt" import "math/rand" func main() { // 例如,rand.Intn 返回一个随机的整数 n,0 <= n <= 100。 fmt.Print(rand.I...阅读全文

Go语言程序设计的一些规则和注意事项

载:http://www.jincon.com/archives/257/ http://www.liguosong.com/2013/07/07/golang%E7%9A%84%E5%B0%8F%E6%80%BB%E7%BB%93/ 1、Go编程的风格,可以以组为单位进行申明变量和常量,以及加载包。 2、Go语言支持简单的函数,条件和循环风格,把括号都给省掉了 3、 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量;小写字母开头的就是不可导出的,是私有变量。 4、大写字母开头的函数也是一样,相当于class中的带public关键词的公有函数;小写字母开头的就是有private关键词的私有函数。 5、go语言是不需要以分号结尾的,这个和python非常类似。 6、Go语言是支...阅读全文

博文 2015-06-30 20:00:00 yugongpeng_blog

golang、python中生成随机字符:字母、数字、大小写等

go语言中需要自己写各种函数方法来实现。下面的代码只代表个人在极少的时间内写出代码的结果,并不代表最优算法。 func main() { fmt.Println('0') fmt.Println(randUpString(10)) fmt.Println(randLowString(10)) fmt.Println(randIntString(5)) fmt.Println(randstr(10)) } //取得随机字符包含数字、大小写等,可以自己随意扩展。 func randstr(l int) string { var inibyte []byte var result bytes.Buffer for i := 48; i < 123; i++ { switch { case i < ...阅读全文

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

让人相见恨晚的vim插件:模糊查找神器LeaderF

提到vim的模糊查找插件,很多人第一反应是`ctrlp.vim`,`ctrlp`知名度很高,但跟其它的同类插件相比,它的唯一优点是用vimL编写(这让它的性能是所有同类插件中最差的)。本文向大家推荐一款模糊查找插件——[LeaderF][1],无论是从性能还是匹配精度上,都远远超越ctrlp。 ## [LeaderF][1]是什么? `LeaderF`是一个用Python写的vim插件,可以在成千上万数十万个文件中,通过模糊查找的方式,快速找到目标文件。它还有很多衍生功能:快速打开或定位某个buffer、最近使用的文件(mru)、tags(包括函数、类、变量等)、命令历史、文件中的某一行、vim的help、marks等等。 ### 查找文件 文件查找是vimer的常用操作,海...阅读全文

go语言实战中第6章并发中实例,1个逻辑处理器的时候为什么后面的goroutine先执行呢???

![image.png](https://static.studygolang.com/180412/84a094146513c761df58c68c95dd2c8b.png) 这个程序为什么会先输出大写字母呢,书上说第一个goroutine完成所有显示需要花时间太短了,以至于在调度器切换到第二个goroutine之前,就完成了所有的任务,按照这样说也应该是先输出小写字母才对啊??? 求解答,谢...阅读全文

Golang之一个简单的聊天机器人

翠花,上代码 package main import ( "bufio" "fmt" "os" "strings" ) func main() { //从标准输入读取数据 inputReader := bufio.NewReader(os.Stdin) fmt.Println("Please input your name:") //读取数据直到遇见\n位置 input, err := inputReader.ReadString('\n') if err != nil { fmt.Printf("An error occurred:%s\n", err) //异常错误后退出 os.Exit(1) } else { //用切片操作删除最后的\n name := input[:len(inpu...阅读全文

博文 2018-01-10 16:30:02 pyyu

go 正则表达式

go正则表达式大全 ackage 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——”) //返回str中第一个匹配reg的字符串 dat...阅读全文

博文 2016-09-10 18:00:02 guoer9973

go基础——02(一些技巧 、一些规则)

go语言学习笔记 1、一些技巧 分组声明 在Go语言中,同时声明多个常量、变量,或者导入多个包时,可采用分组的方式进行声明。 例如下面的代码: import "fmt" import "os" const i = 100 const pi = 3.1415 const prefix = "Go " var i int var pi float32 var prefix string 可以分组写成如下形式: import( //分组的方式进行声明 导入多个包 "fmt" "os" ) const( //分组的方式进行声明 声明多个常量 i = 100 pi = 3.1415 prefix = "Go_" ) var( //分组的方式进行声明 声明多个变量 i int pi float32 pr...阅读全文

博文 2014-12-22 17:00:01 shaozhang872196

《Go语言程序设计》第4章练习

4.1 写一程序求y值(x值由键盘输入)。 y = (sinx+cosx)/2, x>=0 y = (sinx-cosx)/2, x<0 4.2 输入一个字符,判断它如果是小写字母输出其对应的大写字母;如果是大写字母输出其对应的小写字母;如果是数字输出数字本身;如果是空格输出“SPACE”;如果不是上述情况输出“Other”。 4.3 有三个数a、b、c,由键盘输入,输出其中最大的数。 4.4 输入一个数,判断它能否被3或者5整除,如至少能被这两个数中的一个整除则将此数打印出来,否则不打印,编出程序。 4.5 读入1-7之间的某个数,输出表示一星期中相应的某一天的单词:Monday、Tuesday等,使用switch语句实现...阅读全文

golang fmt 占位符

package mainimport ( "fmt")//fmt占位符func main() { var n = 100 //查看类型 fmt.Printf("%T\n", n) //类型 fmt.Printf("%v\n", n) //相应值的默认格式 fmt.Printf("%b\n", n) //二进制表示 fmt.Printf("%d\n", n) //十进制表示 fmt.Printf("%o\n", n) //八进制表示 fmt.Printf("%x\n", n) //十六进制表示,字母形式为小写 a-f var s = "Hello,你好!" fmt.Printf("%s\n", s) //输出字符串表示(string类型或[]byte) fmt.Printf("%v\n", s...阅读全文

博文 2019-12-11 15:32:53 平凡之路001

go 语言学习笔计之结构体

go 语言中的结构体方法 结构体名称的大小写有着不同的意义: 小写表示不能被别的包访问 package main import "fmt" type Rect struct { width,height int } func (r *Rect) area() int { return r.width*r.height; } func main() { r:=Rect{width:10,height:10} fmt.Println(r.area()); rp:=&r; fmt.Println(rp.area()); } 使用结构体来解析xml 首先我们看xml的格式,对于属性(attr)和节点使用是不一样的, 具体的使用方式如下 阅读全文

博文 2015-07-11 03:00:02 witwave

Fourth glance in Go

在Go里面的结构体和方法是很有意思的内容。它即和OO有点像,但又不完全一样。为什么这么说呢?当你把结构体映射为OO里面的类的时候,你给结构体添加方法,你就会发现其实方法与结构体并没有严格意义上的关系。在Go里面,方法是绑定到接受者上的。什么是接受者?一个对象,这个对象可以是任何类型,int,string, struct, interface ...。 func (t *Type) method_name(parameters) return type 但是同名的方法,在同一个类型上只能出现一次。而且该类型必须与方法在同一个包中。 另外一点是内嵌结构体的问题,方法是可以被继承的。也就是说一个结构体被内嵌到另一个结构体中,那么父结构体也就具有了内嵌结构体的方法 >>person.go -----...阅读全文

博文 2015-02-12 03:00:01 moonz-wu

go语法之一

Go语法: Go语言要求public的变量必须以 大写字母开头,private变量则以小写字母开头,这种做法不仅免除了public、private关键字,更重要的是统一了命名风格。 Go语言对{ }进行了强制,必须如下写法: if expression { ... } 下面的写法是错误的: if expression { ... } Go代码的花括号位置是非常统一的; 最有意思的其实还是 Go 语言首创的错误处理规范: f, err := os.Open(filename) if err != nil{ log.Println("Open file failed:", err) return } defer f.close() 1、defer 关键字;defer语句的含义是不管程序是否出现异...阅读全文

博文 2015-06-30 03:00:00 chris-cp

Golang小实战 开发Web常用工具 第一弹

> 我只是一枚小菜鸟,不会并发,不会分布式,也不会自动化、大数据,只有浅显的技术,只是想大概分享下做的一些小工具。每天早上醒来签到已经成为一种习惯,偶尔回答下问题,索性活跃度不是很高,没啥可说的了。 **上预览图** ![QQ截图20171218190603.png](https://static.studygolang.com/171219/221a75b5b56218140022ea8df8519c8a.png) *平时可能要自己加密或者随机生成一段字符串做密码或者其他的加密用途,上面的预览图是我喜欢的某网站的风格图,模仿其功能,采用 iview + axios + golang 技术,进行功能还原,代码很一般,如果有错误请批评指正。下面是还原预览图* !...阅读全文

Go语言:正則表達式的使用

Go语言的正則表達式使用非常easy。演示样例代码: 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-12-22 03:00:01 gcczhongduan

Go2将修改导出规则

Go2将修改导出规则, 只有小写字母和”_“开头的不导出. 中文等不区分大小写的标识符默认导出. A solution that's been kicking around for a while: For Go 2 (can't do it before then): Change the definition to “lower case letters and _ are package-local; all else is exported”. Then with non-cased languages, such as Japanese, we can write 日本語 for an exported name and _日本語 for a local name. This ru...阅读全文

Golang推荐的命名规范

很少见人总结一些命名规范,也可能是笔者孤陋寡闻,作为一个两年的golang 开发者,我根据很多知名的项目,如moby, kubernetess等总结了一些常见的命名规范。命名规范可以使得代码更容易与阅读,更少的出现错误。1、文件命名规范由于文件跟包无任何关系,而又避免windows大小写的问题,所以推荐的明明规范如下:文件名应一律使用小写,不同单词之间用下划线分割, 命名应尽可能地见名知意。2、常量命名规范常量明明用 camelcase来命名示例如下更多go语言内容请关注:http://www.fastgolang.co...阅读全文

博文 2019-07-08 20:32:43 CC_ab48

go语言——Hello Word!

package main import "fmt" func main(){ fmt.Pritln("Hello Word!") } 我们这个程序的函数名称是main。尽管名称没有限制,但main包的main函数是每一个可执行程序的入口。而“包”则包装了相关的函数、变量和常量,要用import导入,才可以使用。例如:我们导入fmt包,才可以使用它的Println函数。 双引号里的“Hello Word!”是Go的字符串常量。和C的字符串不同,Go程序不可以改变字符串的内容,而仅仅是将其地址和长度作为字符串的值,复制给参数。也可以说,Go的参数传递,都是值的传递,而没有其他语言的那种间接的引用参数。 Go语言将代码风格强制统一,例如Go语言要求public的变量必须以大写字母开头,privat...阅读全文

博文 2016-02-21 04:00:00 u012992473

Golang 之 struct

声明一个struct 声明一个 struct 的语法如下: type struct_name struct { body } 例如: type Person struct { name string age uint8 } 关于 struct 字段的可见性 如果一个 struct 的字段以大写字母开头, 则表示这个字段是导出的, 即可以在其他包中访问这个字段, 例如: type Person struct { Name string age uint8 } 上面的例子中, 因为 Person 的 Name 字段是大写字母开头, 因此可以在其他包访问它, 而 age 是小写字母开头, 因此仅仅能在包内访问. struct 字面量 我们可以使用 struct 字面量来实例化一个 struct, ...阅读全文

博文 2016-08-19 13:00:00 xys1228

gf框架之gvalid – 强大灵活的数据校验/表单校验模块

gf提供了非常强大易用的数据校验功能,通过gvalid包提供,封装了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验等特性。由于gf是模块化、低耦合设计,gvalid包也可以在项目中单独引入使用。 使用方式: import "gitee.com/johng/gf/g/util/gvalid" 校验规则 40种常用的校验规则: required 格式:required 说明:必需参数 required-if 格式:required-if:field,value,... 说明:必需参数(当任意所给定字段值与所给值相等时,即:当field字段的值为value时,当前验证字段为必须参数) required-unless 格式:required-unle...阅读全文

golang基础<2>

以下主要描述Go语言程序结构。 一、名称的定义规范 这里包括函数、变量、常量、类型、语句标签以及包的名称都必须以字母或下划线开头,后面可以跟任意数量的字符、数字和下划线,在golang中,名称是区分大小写的,如: var Age int8与var age int8是两个不相同的变量,golang中的关键字和内置的常量、类型和函数不能作为名称来使用。 (1)关键字: var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通...阅读全文

博文 2018-01-19 10:30:01 cw2030

GO 语言学习 包 探究

GO语言中包是函数和数据的集合。 用package关键字定义一个包,包名的约定是使用小写字符。 包中的函数名以大写字母启始的是可导出的,及可以在包外部调用 GO 包的编译使用 go build 安装使用 go install 包命名规则:小写字母的一个单词,不应有下划线或混合大小写。 包名是导入的默认名称,可以使用其他名称来代替默认名称: import bar "bytes" 则 函数Buffer可以通过bar.Buffer来访问。 包的测试:go test 需要编写test文件,在test文件中以 packe XXX (XXX是要测试的包)开头, 并且导入 testing包 import "testing"。 测试函数都有相同的标识,名字以Test开头: func TestXxx(t *t...阅读全文

博文 2015-06-17 23:01:17 phlong999

go圣经笔记--第二章

2.1 命名 1) 一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。 大写字母和小写字母是不同的。 2) 关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 3) 还有大约30多个预定义的名字,比如int和true等,主要对应内建的常量、类型和函数。 内建常量: true false iota nil 内建类型: int ...阅读全文

博文 2016-04-18 05:00:02 betterjun30

go语言学习笔记之前言部分

前言 1、针对权限访问修饰符的规范 go语言要求public修饰的变量以大写字母开头 以private修饰的变量以小写字母开头 这样可以直接免除public和private关键字 2、花括号位置规范 if expression{ if expression ...... { ...... } } 这种是正确的写法 这种是错误的写法 3、go语言的错误处理机制优势,有error类型 4、用go语言模仿继承时,若充当父类的结构体a与充当子类的结构体b中有相同名称的属性v,在b调用a的方法输出v的值时,打印输出的会是父类属性值 例如下列代码: package main import "fmt" type Dog struct { name string } type BDog struct { D...阅读全文

博文 2015-09-17 07:00:00 zhaomingwei

go语言正则表达式

我们前两节课爬取珍爱网的时候,用到了很多正则表达式去匹配城市列表、城市、用户信息,其实除了正则表达式去匹配,还可以利用goquery和xpath第三方库匹配有用信息。而我利用了更优雅的正则表达式匹配。下来大概介绍下正则表达式。 比如我们匹配城市列表的时候,会取匹配所有城市的url,如下: 可以看到图片后是小写字母加数字,那么就可以用以下方式提取: < ahref="(http://www.zhenai.com/zhenghun/[0-9a-z]+)"[^>]*>([^<]+) [0-9a-z]+表示匹配小写字母或者数字至少一次,1*表示匹配非>的字符任意次,然后2+表示匹配非<字符至少一次。我们要取到城市的url和城市名,所以对进行了分组。 通过以下方式就可以拿到url和city c...阅读全文

博文 2019-10-18 10:02:37 小碗汤

字符串中的第一个唯一字符

题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例 s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项 您可以假定该字符串只包含小写字母。 思路 可以使用一个数组记录每个字符出现的次数。 既然只有小写字母,所以只需要26个空间便够用了。 先遍历一次字符串,然后记录每个字符出现的次数。 再从头遍历一次字符串,若该位置的元素只出现一次,返回该索引即可。 Java代码实现 class Solution { public int firstUniqChar(String s) { //由于只包含小写字母,所以26就够用了 char[] chars = new char[26]; for (int ...阅读全文

博文 2020-03-14 21:32:46 youzhihua