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

命令: 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语言运行cmd命令逐行实时输出执行过程

Golang运行cmd命令逐行实时输出执行过程,注意,不是一次输出所有的内容,而是按照执行的过程,逐行逐行的实时显示出来 代码如下: package main import ( "bufio" "fmt" "io" "os/exec" ) func main() { command := "ls" params := []string{"-l"} //执行cmd命令: ls -l execCommand(command, params) } func execCommand(commandName string, params []string) bool { cmd := exec.Command(commandName, params...) //显示运行的命令 fmt.Println(...阅读全文

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

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的标准输入输出

golang中的标准输出很简单: package main import ( "fmt" ) func main() { fmt.Println("Hello world"); } 标准输入的,自己试了好多次都不行: package main import ( "fmt" ) func main() { var str string fmt.Scanln(str) fmt.Printf("INPUT :%s\n", str); } 结果发现正确的应该是在str前加&: package main import ( "fmt" ) func main() { var str string fmt.Scanln(&str) fmt.Printf("INPUT :%s\n", str); } 小记一...阅读全文

博文 2014-10-04 19:26:55 无量神通

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

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

博文 2016-06-01 11:00:01 xiaoyida11

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

golang sync.Once

package main import ( "fmt" "sync" "time" ) var counter int = 0 func main() { var once sync.Once onceBody := func() { time.Sleep(3e9) fmt.Println("Only once") } done := make(chan bool) for i := 0; i < 10; i++ { j := i go func(int) { once.Do(onceBody) fmt.Println(j) done <- true }(j) } //给一部分时间保证能够输出完整【方法一】 //for i := 0; i < 10; i++ { // <-done //} ...阅读全文

博文 2015-04-09 03:00:00 rojas

利用Go1.4的新特性,在go test时输出glog日志

Go1.4 新增了一个功能:TestMain(m *testing.M) 利用这个函数,可以在*_test.go里面统一设置一次glog的参数,让go test的输出,也能包含glog的日志! func TestMain(m *testing.M) { flag.Set("alsologtostderr", "true") flag.Set("log_dir", "/tmp") flag.Set("v", "3") flag.Parse() ret := m.Run() os.Exit(ret) } 这样可以避免在每个TestXXX函数的开头都去设置flag. 参考: https://justinas.org/my-reason-to-be-excited-for-go-14/ https:...阅读全文

博文 2015-06-18 18:07:59 wk3368

golang时间格式化

golang中如何输入当前时间 package main import( "fmt" "time" ) func main(){ t := time.Now() y,m,d := t.Date() today := time.Now().Format("2006-01-02") datetime := time.Now().Format("2006-01-02 15:04:05")//后面的参数是固定的 否则将无法正常输出 fmt.Println("time is : ",t ) fmt.Println("y m d is : ",y,m,d ) fmt.Println("now is :",today) fmt.Println("now is :",datetime) ...阅读全文

博文 2015-06-17 20:04:06 herohenu

golang printf中的%c,%d,%u.都分别代表输出的是什么类型的?

%表示格式化字符串输出目前printf支持以下格式的输出,例如:printf("%c",a);输出单个字符。printf("%d",a);输出十进制整数。printf("%f",a);输出十进制浮点数.printf("%o",a);输出八进制数。printf("%s",a);输出字符串。printf("%u",a);输出无符号十进制数。printf("%x",a);输出十六进制数...阅读全文

博文 2017-07-10 08:07:47 Robinbing

改变Go命令行输出颜色

写命令行程序时,希望输出不是单一的颜色,实际上,Linux 这样的系统中,有不少命令输出是有颜色的。那么 Go 编写的程序能做到吗? 事实上,已经有这样的第三方库可以使用: 1、[github.com/fatih/color](https://github.com/fatih/color) ![enter image description here][1] 2、[github.com/aybabtme/rgbterm](https://github.com/aybabtme/rgbterm) ![enter image description here][2] 3、[github.com/daviddengcn/go-colortext](https:/...阅读全文

睡眠排序--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学习之奇葩的time format

golang格式化时间时,比如如下格式进行格式化输出: fmt.Println(time.Now().Format("2007年03月")) 程序直接输出: 16007年02月 很奇葩,但是若改成: fmt.Println(time.Now().Format("2006年01月")) 程序正确输出: 2016年06月 据说是go诞生日期,只认这个,更详细的时间是: fmt.Println(time.Now().Format("2006-01-02 15:04:05")) 2016-06-16 14:18:1...阅读全文

博文 2016-06-17 03:00:01 caiya928

golang随机数的问题,使用了网上所有的方法,都没有比较好的生成方式

我的代码: ``` package main import ( "fmt" "math/rand" //"runtime" "time" ) func main() { //runtime.GOMAXPROCS(1) fmt.Println("===rand.New(rand.NewSource(64))====") for i := 0; i < 20; i++ { r := rand.New(rand.NewSource(64)) fmt.Print(fmt.Sprint(r.Intn(5)) + "-") } fmt.Println("") fmt.Println("===rand.New(rand.NewSource(...阅读全文

GO 大小端

package main import ( "bytes" "encoding/binary" "fmt" ) func main() { var i uint32 = 1234 // 小端 b := make([]byte, 4) binary.LittleEndian.PutUint32(b, i) fmt.Printf("LittleEndian(%d) :", i) for _, bin := range b { fmt.Printf("%02X ", bin) } fmt.Printf("\n") //大端 fmt.Printf("BigEndian(%d) :", i) binary.BigEndian.PutUint32(b, i) for _, bin := range b ...阅读全文

博文 2017-05-16 07:00:50 痞子汤

go语言之Cmd.start, Cmd.Wait

package main import ( "fmt" "log" "os/exec" "encoding/json" ) func main() { cmd := exec.Command("echo", "-n", `{"Name": "Bob", "Age": 32}`) stdout, err := cmd.StdoutPipe() if err != nil { log.Fatal(err) } if err := cmd.Start(); err != nil { log.Fatal(err) } var person struct { Name string Age int } if err := json.NewDecoder(stdout).Decode(&person);...阅读全文

博文 2015-06-17 23:07:38 zistxym

学习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

go语言的string和slice是值拷贝吗?

package main import "fmt" func main() { var str string = "12345" tmpstr := str fmt.Printf("%x %x\n", str, tmpstr) tmpstr = tmpstr + "x" fmt.Printf("%x %x\n", str, tmpstr) var a []byte = []byte("12345") b := a fmt.Printf("%x %x\n", a, b) b = append(b, 'a') fmt.Printf("%x %x\n", a, b) } 应该是指针拷贝, 上面的输出是 3132333435 3132333435 3132333435 313233343578 31...阅读全文

博文 2016-03-18 13:00:02 frank0712105003

用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

打印结果出现%!(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...阅读全文

golang的http不是并发的么?

下面这代码同时打开两个页面访问,第二个要等第一个输出1,2后才会输出1,http不是并发的么