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

命令: go build

go help build 构建编译由导入路径命名的包,以及它们的依赖关系,但它不会安装结果. 使用 go build [-o 输出名] [-i] [编译标记] [包名] 如果参数为***.go文件或文件列表,则编译为一个个单独的包。当编译单个main包(文件),则生成可执行文件。当编译单个或多个包非主包时,只构建编译包,但丢弃生成的对象(.a),仅用作检查包可以构建。当编译包时,会自动忽略'_test.go'的测试文件。 参数 -o output 指定编译输出的名称,代替默认的包名。 -i install 安装作为目标的依赖关系的包(用于增量编译提速)。 以下 build 参数可用在 build, clean, get, install, list, run, test -a 完全编译,不...阅读全文

博文 2017-02-21 10:00:42 0zaki1sc

golang日期字符串与时间戳转换

坑爹啊 网上搜的到都是坑爹代码 只好自己搞 //获取本地location toBeCharge := "2015-01-01 00:00:00" //待转化为时间戳的字符串 注意 这里的小时和分钟还要秒必须写 因为是跟着模板走的 修改模板的话也可以不写 timeLayout := "2006-01-02 15:04:05" //转化所需模板 loc, _ := time.LoadLocation("Local") //重要:获取时区 theTime, _ := time.ParseInLocation(timeLayout, toBeCharge, loc) //使用模板在对应时区转化为time.time类型 sr := theTime.Unix() //转化为时间戳 类型是int64 fm...阅读全文

博文 2015-06-17 20:23:32 u012210379

Go中获取当前日期信息和时间戳

1、获取当前时间 (1) currentTime:=time.Now() //获取当前时间,类型是Go的时间类型Time (2) t1:=time.Now().Year() //年 t2:=time.Now().Month() //月 t3:=time.Now().Day() //日 t4:=time.Now().Hour() //小时 t5:=time.Now().Minute() //分钟 t6:=time.Now().Second() //秒 t7:=time.Now().Nanosecond() //纳秒 currentTimeData:=time.Date(t1,t2,t3,t4,t5,t6,t7,time.Local) //获取当前时间,返回当前时间Time fmt.Printl...阅读全文

博文 2018-10-06 17:35:09 ck_god

go build -ldflags 参数及 gdb 调试

go build -ldflags 参数及 gdb 调试 有时发布时我们想隐藏所有代码实现相关的信息,使用 go build -ldflags 参数可以实现相关要求。 示例代码 本文使用版本为go 1.6。 package main import "log" type MyCat struct { name string age int } func main() { cat := MyCat{ name: "tom", age: 10, } log.SetFlags(log.Llongfile) log.Println(cat) } 使用-ldflags 设置编译参数-ldflags "-w -s"。 其中-w为去掉调试信息(无法使用gdb调试),-s为去掉符号表(暂未清楚具体作用)。 g...阅读全文

博文 2016-07-10 05:00:06 gvgarven

Go 系列教程 —— 8. if-else 语句

这是我们 [Golang 系列教程](https://golangbot.com/learn-golang-series/)的第 8 篇。 if 是条件语句。if 语句的语法是 ```go if condition { } ``` 如果 `condition` 为真,则执行 `{` 和 `}` 之间的代码。 不同于其他语言,例如 C 语言,Go 语言里的 `{ }` 是必要的,即使在 `{ }` 之间只有一条语句。 if 语句还有可选的 `else if` 和 `else` 部分。 ```go if condition { } else if condition { } else { } ``` if-else 语句之间可以有任意数量的 `else if`。条件判断顺序是从上到下。如果 `i...阅读全文

博文 2017-12-09 10:24:21 Dingo1991

Go语言for```range方法遍历map,遍历打印值与map实际存储值不同

> 今天编写了map结构数据存储程序,map的key总数:22046个,通过for```range方法遍历map发现,遍历打印的结果与实际存储内容不符,主要是存储结果数量和值正确,打印出来的值少了。 - 以下是打印结果 ```go keys:0xE7A0 values:0x942E keys:0xE9E6 values:0x6B92 keys:0xF5F2 values:0x8E9C keys:0xF7F0 values:0x9EDF ======================= 以上使用range遍历结果 ==================== 获取0xFE4E值:0xFA28 总数:22046 ``` - 以下是存储数据结构示意 ...阅读全文

golang net/url values

package main import ( "fmt" "net/url" ) func main() { values, err := url.ParseRequestURI("https://www.baidu.com/s?wd=%E6%90%9C%E7%B4%A2&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=7&rsv_sug1=6") fmt.Println(values) // 会打印出https://www.baidu.com/s?wd=%E6%90%9C%E7%B4%A2&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&...阅读全文

博文 2015-03-14 03:00:01 benlightning

golang 格式化打印struct

//type:interface value:sturct func PrintStruct(t reflect.Type, v reflect.Value, pc int) { fmt.Println("") for i := 0; i < t.NumField(); i++ { fmt.Print(strings.Repeat(" ", pc), t.Field(i).Name, ":") value := v.Field(i) PrintVar(value.Interface(), pc+2) fmt.Println("") } } func PrintArraySlice(v reflect.Value, pc int) { for j := 0; j < v.Len(); j++ ...阅读全文

博文 2015-01-25 03:00:02 yumuxu

Golang调用Python

阅读原文请点击摘要:Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发语言。Python很适合让搞算法的写写模型,而Golang很适合提供API服务,两位同志都红的发紫,这里就介绍一下正确搅基的办法。 ![干他一炮.jpg](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/f5ad9d2dbd36c37ef742c7be6998Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发语言。Python很适合让搞算法的写写模型,而Golang很适合提供API服务,两位同志都红的发紫,这里就介绍一下正确搅基的办法。 原理Python提供了丰富的C-API。而C和Go又可以通过cgo无缝集成...阅读全文

博文 2017-07-06 07:08:31 骑猪逛街666

go filepath Abs

func Abs(path string) (string, error) 检测地址是否是绝对地址,是绝对地址直接返回,不是绝对地址,会添加当前工作路径到参数path前,然后返回 一下是测试代码 func TestAbs() { fpt, err := filepath.Abs("/hello") if err != nil { panic(err) } fmt.Println(fpt) fpt, err = filepath.Abs("helleeo") if err != nil { panic(err) } fmt.Println(fpt) } 打印信息: /hello /home/xxx/workspace/gotestworkspace/golangtest/helleeo “/”...阅读全文

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

go打印堆栈

在调试go程序的过程中,可能会出现重复关闭chan的情况,可能会有多个路径执行关闭操作,为了确定操作路径可以使用runtime/debug包中的PrintStack()打印堆栈,最后确定具体的执行路径。参考代码如下[1]: package main import ( "runtime/debug" ) func main() { defer func() { if err := recover(); err != nil { debug.PrintStack() } }() value := 111 zero := 0 value = value / zero } go异常恢复打印堆栈 $(function () { $('pre.prettyprint code').each(functi...阅读全文

博文 2016-02-14 16:00:00 jiaolongdy

Golang,kafka实现消息推拉

Kafka的安装与启动 kafka中涉及的名词 消息记录:由一个key,一个value和一个时间戳构成,消息最终存储在主题下的分区中,记录在生产中称为生产者记录,在消费者中称为消费记录。Kafka集群保持了所有发布的消息,直到它们过期,无论消息是否被消费了,在一个可配置的时间段内,Kafka集群保留了所有发布的消息。比如消息的保存策略被设置为2天,那么在一个消息被发布的两天时间内,它都是可以被消费的。Kafka的性能是和数据量无关的常量级的,所以保留太多数据并不是问题 生成者:生产者用于发布消息 消费者:消费者用于订阅消息 消费者组:相同的groupID的消费者将视为同一个消费者组,每个消费者都需要设置一个组id,每条消息只能被consumer group中的一个Consumer消费,但是可...阅读全文

博文 2019-01-25 14:34:47 Carrism

睡眠排序--go实现

一次偶然的机会看见了睡眠排序,很有意思的一种排序算法,可以说是对我们熟悉的正规排序的一种挑战,是思想上的突破,有点像脑筋急转弯。使用睡眠排序算法,只能按照从小到大的顺序排列。打印数组中的数据时,按照其大小sleep,这样,数越大sleep的时间也就越长。所有的数同时进入sleep状态,数比较小的会提前打印出来。近期使用的都是GO语言,对其并发也有了些许理解,所以,使用go语言来实现这种排序,是很不错的选择。 // test project main.go package main import ( "fmt" "time" ) var flag bool var container chan bool var count int func main() { flag = true conta...阅读全文

博文 2014-10-04 19:26:02 lxy15329

学习Golang语言(4):类型--字符串

跟着“码术”一起学习Golang语言,偷懒了好多天啦,今天继续讲解Golang中的类型。今天讲解的是字符串。 学习Golang语言(1): Hello World 学习Golang语言(2): 变量 学习Golang语言(3):类型--布尔型和数值类型 学习Golang语言(4):类型--字符串 学习Golang语言(5):类型--数组 学习Golang语言(6):类型--切片 数值类型 补充上一章节没有指出的地方: Golang还定义了三种依赖系统的类型:int、unint和uintptr。因为在32位系统和64位系统上用来表示这些类型的位数是不同的。 字符串 Golang中另一个重要的内建类型是string。 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起...阅读全文

博文 2014-10-09 16:00:04 codemanship

golang printf

1: 打印包括字段在内的实例的完整信息 同 %+V fmt.Printf("Hello world! %v","hufeng") 输出:Hello world! hufeng 2:打印包括字段和限定类型名称在内的实例的完整信息 fmt.Printf("Hello world! %#v","hufeng") Hello world! "hufeng" 3:打印某个类型的完整说明 fmt.Printf("Hello world! %T","hufeng") Hello world! string 4: fmt.Printf("Hello world! %t",false); Hello world! false 5: fmt.Printf("Hello world! %%"); Hello wo...阅读全文

博文 2014-10-04 19:26:00 dyllove98

用golang打印数字

效果: guodeMacBook-Air:programming_in_go guo$ go run 1_1.go 1234 1 222222 333333 4 4 1 1 2 3 4 4 1 222222 333333 444444 1 2 3 4 1111111 222222 333333 4 go 源码(节选) package main import ( "fmt" "os" ) func main() { if len(os.Args) != 2 { fmt.Printf("%s number\n", os.Args[0]) return } bigdigits := [][]string{ {" 000 ", " 0 0", " 0 0", " 0 0", " 000 ", }, ...阅读全文

博文 2015-04-29 23:00:00 guonaihong

golang中使用MD5加密的两种方法

package main import ( "crypto/md5" "fmt" "io" ) func main() { str := "abc123" //方法一 data := []byte(str) has := md5.Sum(data) md5str1 := fmt.Sprintf("%x", has) //将[]byte转成16进制 fmt.Println(md5str1) //方法二 w := md5.New() io.WriteString(w, str) //将str写入到w中 md5str2: = fmt.Sprintf("%x", w.Sum(nil)) //w.Sum(nil)将w的hash转成[]byte格式 fmt.Println(mdtstr2) } 打印结果...阅读全文

博文 2017-03-05 13:56:04 skh2015java

打印结果出现%!(EXTRA 是什么意思?

代码如下: ``` func main(){ fmt.Printf("hello world.你好,世界!") var v1, v2, v3 int var str1 string = "000" var str2 = "123" str3 := "321" fmt.Printf("hello world. 你好中国 %d %d %d\n", v1, v2, v3) fmt.Printf(str1, str2, str3) } ``` - 输出结果如下: hello world.你好,世界!hello world. 你好中国 0 0 0 000**%!(EXTRA **string=123, string=321) Process finish...阅读全文

goroutine

为了看golang多个goroutine上怎么调度,上代码: ``` package main import( "fmt" ) func main(){ go func(){//goroutine 持续打印1 i:=1 fmt.Println(i) }() for{//main 程持续打印0 i:=0 fmt.Println(i) } } ``` 实际上会一直打印0,也就是没有执行main之外的goroutine。 ``` `package main` `import(` `"fmt"` ` "time"` `)` `func main(){` `go func(){//go...阅读全文

一个不可思议的问题,大婶们进来看看

``` // 取redigo 连接 conn := models.Redis(setting.Conf.TimelineRedis).Get() defer conn.Close() for i, _ := range times { // redis key key := getTimelineKeyByCode(code, times[i]) // 接参数发送命令 err := conn.Send("HMGET", getTimelineArgs(key)...) if err != nil { return nil, err } } err := conn.Flush() if err != nil { ...阅读全文

time.sleep的问题

请问如下代码: ```go func main() { fmt.Println("begin do something...") time.Sleep(5e9) fmt.Println("Done") } ``` 为何执行的时候,程序会先等待5秒,然后才会打印出来“begin do something”和“Done”,而不是先打印出来“begin do something”,然后等待5秒,在打印出“Done”?难道跟fmt.println的实现有关系吗...阅读全文

go学习笔记-go语言传值默认采用value还是reference?

看下面的程序 package main import "fmt" type Question struct { title string detail string } func (ques Question) Print() { fmt.Println(ques.title) } func (ques Question) Update2(title string) { ques.title = title } func (ques *Question) Update(title string) { ques.title = title } func main() { ques := Question{ title: "why", detail: "haha", } ques.Print()...阅读全文

博文 2015-12-31 03:00:00 inevermore

【go】基础

GO语言25个关键字的说明; var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制 chan用于channel通讯 type用于声明自定义类型 map用于声明map类型数据 range用于读取slice、map...阅读全文

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

关于json格式化输出json.MarshalIndent()的使用

最近发现用json.MarshalIndent()转出来的json打印出来比较好看 比如 ``` js,_ := json.Marshal(&person) jsIndent,_ := json.MarshalIndent(&person, "", "\t") fmt.Println("\njs:\n",string(js), "\n\njsIndent:\n",string(jsIndent) ``` 打印出来: ``` js: {"Time":1987,"Name":"liangyongxing","Age":12} jsIndent: { "Time": 1987, "Name": "liangyongxing", "Age": 12 }...阅读全文

golang log日志

写入日志文件 func main() { file, err := os.Create("test.log") if err != nil { log.Fatalln("fail to create test.log file!") } logger := log.New(file, "", log.Llongfile) // 写入文件log格式:/Users/zhou/go/src/zhouTest/test.go:22: 2.Println log with log.LstdFlags ... logger.Println("2.Println log with log.LstdFlags ...") logger.SetFlags(log.LstdFlags) // 设置写入文件的lo...阅读全文

博文 2018-08-05 00:30:02 zhzhlong

Go语言闭包的小例子

例子1 package main import ( "fmt" ) func main() { f := closer(10) //fmt.Println(f(1)) //fmt.Println(f(2)) f(1) f(2) } func closer(x int) func(int) int { fmt.Printf("%p\n", &x) return func(y int) int { fmt.Printf("%p\n", &x) return x + y } } 打印结果是: 0x118400e8 0x118400e8 0x118400e8 例子2 package main import ( "fmt" ) func main() { for i := 0; i < 3; i++ ...阅读全文

博文 2014-12-20 19:00:02 itfanr

使用IDEA的GOLANG插件遇到的问题,求解答

![屏幕快照 2017-03-17 下午5.45.15 (2).png](http://studygolang.qiniudn.com/170317/b73250049863a33b3c3e4cb120931a64.png) 如图:DEBUG的时候,Variables内同一个变量msg出现很多次,而且是不同类型。再看Watches里,msg打印出来的类型也和173行断点处不一致。 我试图强行转为正确的类型打印,结果提示类型不匹配。 请教一下,这样的现象如何解决...阅读全文

golang学习笔记之-取随机数

取随机数 package main import ( "fmt" "math/rand" "time" ) func main() { //step1: 设置种子数 rand.Seed(time.Now().UnixNano()) //step2:获取随机数 num4 := rand.Intn(100) //[0,100) fmt.Println(num4) } 取从什么开始到什么结束: package main import ( "fmt" "math/rand" "time" ) func main() { //取[n,m]的数 语法入下: //rand.Seed(time.Now().UnixNano()) //num := rand.Intn(m-n+1) + n //取5到10的数...阅读全文

博文 2018-09-02 20:34:43 Maggie_up

Go by Example: Maps

Maps是Go语言内置的关联型数据类型(在其他语言有时候也叫做hashes或者dicts)。 package main import "fmt" func main() { // 创建一个空字典可以使用内置函数make: "make(map[键类型]值类型)" m := make(map[string]int) // 使用经典的"name[key]=value"来为键设置值 m["k1"] = 7 m["k2"] = 13 // 用Println输出字典,会输出它所有的键值对 fmt.Println("map:", m) // 使用 "name[key]" 获取一个键的值. v1 := m["k1"] fmt.Println("v1: ", v1) // 内置函数返回字典的键值对的个数 fm...阅读全文

博文 2015-06-17 23:08:09 codemanship

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

8.1 班上有30个学生,每个学生的信息包括学号、姓名、性别、年龄、三门课的成绩。要求建立学生信息的结构体student,输入这30个学生的信息,然后打印输出各项数据。 8.2 有4名学生,每个学生包括学号、姓名、成绩,编写函数找出成绩最高学生的学号、姓名和成绩。 8.4 有一批图书,每本书有书名、作者、书号、出版日期4项数据,希望既可以通过书名查询,也可以使用作者或书名来查询图书。编写方法来实现此功能,如果查到,打印出此书的书名、作者、书号和出版日期信息。如果查不到此书,则打印出“无此书”。 8.5 有两个单链表a,b。设节点中包含学号、姓名。从链表a中删除所有与链表b中学号相同的节点...阅读全文

博文 2015-06-17 23:03:19 masm32v9

Go语言:打印杨辉三角

杨辉三角的样式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 它的特征是,每一行的最左边和最右边的元素都是1,而其它元素等于它上方“肩膀”上的两个元素之和。 使用Go语言打印杨辉三角: package test import ( "fmt" ) //行数 const LINES int = 8 //杨辉三角 func ShowYangHuiTriangle() { nums := []int{} for i := 0; i < LINES; i++ { //补空白 for j := 0; j < (LINES - i); j++ { fmt.Print(" ") } fo...阅读全文

博文 2015-06-17 23:01:18 books1958

golang 中使用数组创建slice时的注意事项

golang中,slice是对固定长度数组的一段切片,其底层是用对数值空间的指针实现的。 在golang中当使用一个数组来创建slice时如: var array [5]int = [5]int{1,2,3,4,5} //切割出数组中的4个值,创建一个slice myslice := array[0:4] 打印array的值为: 1, 2, 3, 4, 5 打印mysqlice的值为: 1, 2, 3, 4 现在我们对myslice进行append操作 myslice = append(myslice,100) 打印array的值为: 1, 2, 3, 4, 100 打印mysqlice的值为: 1, 2, 3, 4, 100 现在我们再对myslice进行修改操作 myslice[0] =...阅读全文

博文 2015-06-17 20:02:25 happinessaflower

A tour of Go的疑问

Go 官网上给大家提供了很多练习,是学习Go的不错的途径,但是我遇到一个问题,这个练习中要求用Closure打印Fibonacci数列 http://tour.golang.org/moretypes/22 Exercise: Fibonacci closure package main import "fmt" // fibonacci is a function that returns // a function that returns an int. /*func fibonacci() func() int { x := 0 y := 1 z := 0 return func() int { z = x x = y y = x + y return z } }*/ func fi...阅读全文

博文 2015-12-23 04:00:00 niansiqiao

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 直冲

go特性学习

而后我写了一些测试代码:dept1 := Dept{ name: "MySohu", building: "Internet", floor: 7}switch v := interface{}(dept1).(type) {case DeptModeFull: fmt.Printf("The dept1 is a DeptModeFull.\n")case DeptModeB: fmt.Printf("The dept1 is a DeptModeB.\n")case DeptModeA: fmt.Printf("The dept1 is a DeptModeA.\n")default: fmt.Printf("The type of dept1 is %v\n", v)}deptPtr1...阅读全文

博文 2016-07-27 15:00:02 zlingh

golang时间

//获取本地location toBeCharge := "2015-01-01 00:00:00" //待转化为时间戳的字符串 注意 这里的小时和分钟还要秒必须写 因为是跟着模板走的 修改模板的话也可以不写 timeLayout := "2006-01-02 15:04:05" //转化所需模板 loc, _ := time.LoadLocation("Local") //重要:获取时区 theTime, _ := time.ParseInLocation(timeLayout, toBeCharge, loc) //使用模板在对应时区转化为time.time类型 sr := theTime.Unix() //转化为时间戳 类型是int64 fmt.Println(theTime) //打...阅读全文

博文 2016-08-03 13:00:00 zhangym

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

5.1 求1-100之间的奇数之和、偶数之和 5.2 定义一个整型数组,元素个数为10,打印出数组元素中的最大数、最小数。 5.3 打印出所有的水仙花数。 5.4 FizzBuzz是英国学校里常玩的游戏,从1数到100,如果遇见了3的倍数要说Fizz,如果遇见了5的倍数要说Buzz,如果既是3的倍数又是5的倍数要说FizzBuzz。编写一个程序,按游戏要求打印数字1-100。 5.5 若一个数恰好等于它的平方数的右端,则这个数称为同构数。如5的平方是25,5是25中的右端的数,5就是同构数。找出1-1000之间的同构数。 5.6 一球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 5.7 某铁路线上共有10个车站,如果每...阅读全文