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

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 正则表达式

package main import "bytes" import "fmt" import "regexp" func main() { //这个测试一个字符串是否符合一个表达式。 match, _ := regexp.MatchString("p([a-z]+)ch", "peach") fmt.Println(match) //上面我们是直接使用字符串,但是对于一些其他的正则任务,你需要使用 Compile 一个优化的 Regexp 结构体。 r, _ := regexp.Compile("p([a-z]+)ch") //这个结构体有很多方法。这里是类似我们前面看到的一个匹配测试。 fmt.Println(r.MatchString("peach")) //这是查找匹配字符串的。 f...阅读全文

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

用GO语言实现一个简单的搜索引擎

用GO语言实现一个简单的搜索引擎 项目地址是:https://github.com/wyh267/FalconEngine 对搜索引擎感兴趣的可以去看看这本书,比较浅并且也比较完整的介绍了一个搜索引擎的全部机能。 我的这个搜索引擎原始数据是MySql数据库的,大家可以根据需要进行二次开发,用来支持其他数据库或者本地文件,Detail文件是存储在Redis数据库中,同样这部分也可以根据自己的需要二次开发,使用本地文件或者其他数据库,倒排索引和正排索引本地存储的时候使用的json格式,比较耗磁盘,第一版暂时这样了吧,后续再做优化。 使用方法 依赖以下几个库 github.com/outmana/log4jzl log文件 github.com/ewangplay/config 配置文件解析 gi...阅读全文

博文 2015-07-28 00:00:00 ygrx

Go语言fmt.Printf的使用

Fmt包 import "fmt" 简介 ▾ Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。 输出 格式: 一般: %v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names %#v 值的Go语法表示。 %T 值的类型的Go语法表示。 %% 百分号。 布尔型: %t 值的true或false 整型: %b 二进制表示 %c 数值对应的Unicode编码字符 %d 十进制表示 %o 八进制表示 %q 单引号 %x 十六进制表示,...阅读全文

博文 2015-10-28 21:00:32 fyxichen

golang之数组,slice,map

一 、==========================array 数组=================================== 索引只能是 int 整数型 所以不管几维数组 索引都是 整数 slice 是动态数组 索引也是 整数型 map为key 所以 可以为 整数 也可以为 字符串型 注意slice和数组在声明时的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。 arr1 := [10]int{1,2,3,4} //数组,长度为10,只有4个元素指定,其它的元素值默认为0 arr2 := [...]string{"a","b","c"} //数组,长度自适应,这里长度为3 s1 := []int{1,2,3,4...阅读全文

Go-下载网上图片

package main import ( "bytes" "fmt" "io" "io/ioutil" "net/http" "os" "regexp" ) func main() { imagPath := "http://img2.bdstatic.com/img/image/166314e251f95cad1c8f496ad547d3e6709c93d5197.jpg" //图片正则 reg, _ := regexp.Compile(`(\w|\d|_)*.jpg`) name := reg.FindStringSubmatch(imagPath)[0] fmt.Print(name) //通过http请求获取图片的流文件 resp, _ := http.Get(imagPath) ...阅读全文

博文 2015-12-11 17:00:02 shuanger_

go编程之简单正则表达式使用

对于正则表达式的语法,虽然曾经有熟悉过,但只会用比较简单的匹配模式,现在长时间不用,连简单的匹配写起来都有点成为硬伤的赶脚,不过这里终点不是正在表达式的学习了,咱来看看go语言对于正则表达式的支持及简单的使用就好,程序主要参考go web一书所写,大家可以一起来学习。 主要使用的包为regexp,使用的时候import "regexp“ 就行啦,以下是常用的几个接口 func Match( pattern string, b [ ] byte) ( matched bool, error error) func MatchReader( pattern string, r io. RuneReader) ( matched bool, error error) func MatchStrin...阅读全文

博文 2015-06-17 23:08:15 xixionedream

go利用x/net/html包实现的蜘蛛

看了网上很多个spider版本, 几乎都是使用regexp包正则匹配实现. 其实使用DOC, 性能更好, 也更优雅 package main import ( "fmt" "net/http" "os" "golang.org/x/net/html" ) func visit(links []string, n *html.Node) []string { if n.Type == html.ElementNode && n.Data == 'a' { for _, a := range n.Attr { if a.Key == "href" { links = append(links, a.Val) } } } for c := n.FirstChild; c != nil; c = c...阅读全文

博文 2016-07-21 16:00:00 black_OX

go源码阅读笔记(math.4)

go源码阅读笔记(math.4) 参考godoc API API列表 func NaN() float64 函数返回一个IEEE 754“这不是一个数字”值。 func IsNaN(f float64) (is bool) 判断f是否是NaN值 func Inf(sign int) float64 如果sign>=0返回正无穷大,否则返回负无穷大 func IsInf(f float64, sign int) bool 判断其是否是无穷大数 func Float32bits(f float32) uint32 函数返回浮点数f的IEEE 754格式二进制表示的值对应的4字节无符号整数(每位值不变)。主要是用于位运算之类的,转换成无符号整数,这样不会使用浮点运算器,速度快 func Float...阅读全文

博文 2016-04-05 00:00:00 qq_15437667

go实现爬取href链接

刚开始爬取的时候是用正则表达式实现的,然后爬取了不必要的链接,现在改用goquery实现: // judgeUrl project judgeUrl.go package judgeUrl import ( "strings" ) func IsUrl(str string) bool { if strings.HasPrefix(str, "#") || strings.HasPrefix(str, "//") || strings.HasSuffix(str, ".exe") || strings.HasSuffix(str, ":void(0);") { return false } else if strings.HasPrefix(str, "{") && strings.HasS...阅读全文

博文 2016-02-18 22:00:00 u011466175

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

Go strconv包_字符串和数值类型的转换

Go strconv包_字符串和数值类型的转换 将字符串转换成数值类型和布尔类型 package main import ( "fmt" "strconv" ) func main() { str1 := "0.23" f1, _ := strconv.ParseFloat(str1, 64) f2, _ := strconv.ParseFloat(str1, 32) fmt.Println(f1) //0.23 fmt.Println(f2) //0.23 fmt.Println(f2 * 100) str2 := "1234f" // 16进制的字符串 // 将字符串解析为整数,ParseInt 支持正负号,ParseUint 不支持正负号。 // base 表示进位制(2 到 36),...阅读全文

go语言十大排序算法总结(下篇)

希尔排序 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2《d1重复上述的分组和排序,直至所取的增量dt=1(dt《dt-l《…《d2《d1),即所有记录放在同一组中进行直接插入排序为止。 该方法实质上是一种分组插入方法。 个人总结: public class ShellSorter { public void Sort(int[] arr) { int inc; for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ; for (; inc > 0; inc /= 3) { for (int i = ...阅读全文

博文 2016-07-17 19:00:04 guoer9973

【Go】 格式处理

格式化字符串 在golang里面获取时间戳并不难。只要加载time包。time.Now().Unix() fmt.Sprintf("%d",int64),自此,go语言的int转换成string有3种方法 1、int32位,strconv.Itoa2、大于32位,strconv.FormatInt()3、万恶的fmt.Sprintf...好吧,这个我在php里是经常用来做格式化 引入strings包 strings.contains() index() indexany() indexFunc() 正则表达式 DFANFABacktrackin...阅读全文

博文 2015-07-06 03:00:00 viewcozy

用Golang写一个搜索引擎 (0x00)--- 从零开始

很早就想写一系列的这样的文章了,之前在一个电商公司做搜索,对搜索引擎有一些认识,来到一个新的创业公司以后非常高兴还有机会继续做这方面的事情,虽然领域已经变了,而且不是做搜索了,但是技术还是那些技术,并且有机会接触到了Go语言,对于一个将近10年C/C++的程序员来说,Go的一些特质让我觉得非常舒服,可参见我之前的这篇文章。 从公司项目衍生出了一个自己的搜索引擎项目,然后有了这篇文章。 先聊聊目标吧,我希望实现一个这样的搜索引擎 使用Go语言实现,方便部署,最好就用一个二进制文件搞定一些,不需要安装任何依赖。 类似一个电商的搜索引擎,支持多字段的检索,不仅仅是文本的全文索引,还需要包括过滤功能(比如价格区间过滤),汇总功能(比如结果集中品牌数量汇总),基本的统计功能。 索引器和搜索器在一起,主...阅读全文

博文 2016-07-11 13:50:21 吴yh坚

Go语言正则表达式

package main import ( "fmt" "regexp" ) func main() { // regular expression pattern regE := regexp.MustCompile("/oid/([\\d]+)/") // simulate a search // first convert string to byte for Find() function searchByte := []byte("/oid/1/") matchSlice := regE.Find(searchByte) fmt.Printf("%s \n", matchSlice) // if found, return leftmost match, without 'abc'...阅读全文

博文 2015-07-13 11:00:05 冷絮

golang 时间加减

package main import ( "fmt" "time" ) // 这个方法就是把加减时间值和时间整合到了一起而已 func CTime(t time.Time, time_str string) time.Time { time_part, err := time.ParseDuration(time_str) if err != nil { fmt.Println(err) return t } return t.Add(time_part) } func main() { k := time.Now() /*ParseDuration解析一个时间段字符串。一个时间段字符串是一个序列,每个片段包含可选的正负号、 十进制数、可选的小数部分和单位后缀,如"300ms"、"-1.5...阅读全文

博文 2017-10-30 06:03:10 捍卫机密

golang 中的 regexp 包

正则语法 google/re2 Printf 语法 几个函数方法 名称 说明 备注 Match 验证正则表达式是否匹配 []byte - MatchString 验证正则表达式是否匹配 string - FindAllString Regexp的方法,匹配字符串,返回匹配结果组成一个 []string。限定参数 -1表示不限定,其它表示限定。 - FindAllStringSubmatch Regexp的方法,返回一个 [][]string - 示例 MatchString func MatchString(pattern string, s string) (matched bool, err error) matched, err := regexp.MatchString("foo.*...阅读全文

博文 2017-07-09 06:03:51 中柠檬

用Golang写一个搜索引擎(0x01)--- 基本概念

从零开始,写一个搜索引擎 (0x01) 第零部分我们已经列了一个提纲了,这一篇文章开始要详细说说了。 搜索引擎基本概念 在说搜索引擎架构分层之前,我们先确定几个搜索引擎的概念。 文档,搜索引擎的基本数据单元,比如一张网页,一个商品,多个文档合在一起就是一个搜索引擎的完整数据 倒排索引,正排索引,存储在搜索引擎内部的数据结构,也是搜索引擎最底层的数据结构。 索引器,将文档数据生成可供搜索的倒排索引和正排索引的程序就是索引器。 检索器,通过对倒排索引和正排索引进行查找,从而查找到文档的程序。 字段,每个文档可能有多个字段,比如一篇文章有标题,作者,摘要,详情,发布时间的,这些东西虽然在一个文档中,但是搜索的时候需要区别对待。 索引,多个文档通过索引器生成了一堆倒排正排索引,我们把这些倒排正排索引...阅读全文

博文 2016-07-27 10:54:23 吴yh坚

golang 格式化输入输出

fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf。格式“占位符”衍生自 C,但比 C 更简单。 【打印】 占位符: [一般] %v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名 %#v 相应值的 Go 语法表示 %T 相应值的类型的 Go 语法表示 %% 字面上的百分号,并非值的占位符 [布尔] %t 单词 true 或 false。 [整数] %b 二进制表示 %c 相应 Unicode 码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由 Go 语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode 格式:U+1234,等同于 ...阅读全文

博文 2015-12-22 12:00:05 zhangxing__

golang fmt.printf I/O 函数格式化说明

[TOC] 说明 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf格式“占位符”衍生自 C,但比 C 更简单 常用格式化输出 fmt.Printf("start at number %v, end count %v\n",start, count) 注意参数输出数量和占位符数量要一致 IDEA开发快速格式化模板 使用IDEA开发可以配置自定义代码模板快速生成 Settings -> Editor -> Live Templates 选中 go 语言展开 选则增加一条 Abbreviation 填写 fpf Description 填写 print fmt format Template text fmt.Printf("$END$",$VAR$) Appli...阅读全文

博文 2017-03-05 19:34:39 泛原罪

golang的json处理

1、string跟[]byte的关系 string跟[]byte可以相互转换 s1 := "abcd" b1 := []byte(s1) fmt.Println(b1) // [97 98 99 100] s2 := "中文" b2 := []byte(s2) fmt.Println(b2) // [228 184 173 230 150 135], unicode,每个中文字符会由三个byte组成 2、json字符串转json var dat map[string]interface{} if err := json.Unmarshal([]byte(newstr), &dat); err == nil { fmt.Println(dat["info"]) } json字符串转json通过...阅读全文

博文 2016-11-19 14:01:03 tree2013

Go中的素数筛选

~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ Examination Problem 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。 判断101-200之间有多少个素数,并输出所有素数。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Analysis 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 在一般领域,对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为质数。 质数大于等于2不能被它本身和1以外的数整除 ~~~~...阅读全文

博文 2016-09-11 15:00:00 u013346007

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语言正则表达式

package main import "bytes" import "fmt" import "regexp" func main() { //这个测试一个字符串是否符合一个表达式。 match, _ := regexp.MatchString("p([a-z]+)ch", "peach") fmt.Println(match) //上面我们是直接使用字符串,但是对于一些其他的正则任务,你需要使用 Compile 一个优化的 Regexp 结构体。 r, _ := regexp.Compile("p([a-z]+)ch") //这个结构体有很多方法。这里是类似我们前面看到的一个匹配测试。 fmt.Println(r.MatchString("peach")) //这是查找匹配字符串的。 f...阅读全文

博文 2016-04-30 05:00:02 Jesounao

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

golang之正则校验

Go语言中使用正则校验需要用到 regexp 包 先介绍几种常用的方法: 1、 使用MatchString函数 regexp.MatchString(pattern string, s string) pattern为正则表达式,s为需要校验的字符传 例: match,_:=regexp.MatchString("p([a-z]+)ch","peddach") 返回的第一个参数是bool类型即匹配结果,第二个参数是error类型 fmt.Println(match) //结果为true 2、使用 Compile函数或MustCompile函数 它们的区别是Compile返回两个参数*Regexp,error类型,而MustCompile只返回*Regexp类型 func Compile(ex...阅读全文

博文 2016-11-22 01:00:02 skh2015java

go语言函数例题

// proctice3.2 project main.go main import ( "fmt" ) func main() { //Q10. (5) 变参 1. 编写函数接受整数类型变参,并且每行打印一个数字 printthem printthem fmtPrintln /*Q11. (5) 斐波那契1. 斐波那契数列以:1; 1; 2; 3; 5; 8; 13; : : : 开始。或者用数学形式表达:x1 =1; x2 = 1; xn = x...阅读全文

博文 2015-08-13 14:00:01 直冲

【面试题】计算某个整数 1 的位数,即 Hamming weight

编写一个函数,接收一个无符号整数,返回它拥有的“1”位数(也称为汉明权重,[Hamming weight](https://en.wikipedia.org/wiki/Hamming_weight))。 例如,32 位整数 '11' 的二进制表示为 `00000000000000000000000000001011`,所以函数应该返回3。 ```go // hammingWeight 计算 Hamming weight func hammingWeight(n uint32) int { } ``...阅读全文

golang fmt占位符

golang fmt格式“占位符” qing123 · 2015-03-21 03:00:01 · 43307 次点击 · 预计阅读时间 2 分钟 · 大约1分钟之前 开始浏览 这是一个创建于 2015-03-21 03:00:01 的文章,其中的信息可能已经有所发展或是发生改变。 golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段...阅读全文

博文 2018-07-14 18:30:00 Csir

go语言 类型:数组

在go语言中数组array是一组特定长度的有序的元素集合。 go的数组类型由两部分组成——类型和长度,二者缺一不可。数组本来就是一块存储相同类型元素的连续内存空间,因此决定一个数组的类型,必然需要决定其存储元素的类型以及存储多少个元素。 在Go语言中,数组长度在定义后就不可更改。 数组是值类型,每次传递都将产生一份副本。 例子: package main import ( "fmt" "strconv" ) func main() { var a [5]int //定义数组 5个整数型 fmt.Println("emp:", a) //整数型零值为0 a[4] = 100 //修改数组 fmt.Println("set:", a) fmt.Println("get:", a[4]) //输出...阅读全文

博文 2015-10-13 03:00:00 osfipin

go语言文件正则表达式搜索

package main import ( "fmt" "os" "path/filepath" "regexp" ) func main() { // 命令行参数 args := os.Args // 检查参数 if len(args) == 1 { fmt.Println("ff is a file find tool. use like bottom") fmt.Println("ff [dir] [regexp]") return } if len(args) < 3 { fmt.Println("args < 3") return } fileName := args[1] pattern := args[2] file, err := os.Open(fileName) if e...阅读全文

博文 2015-06-17 23:02:36 aotian16