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

命令: 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 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

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调用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

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

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

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的http不是并发的么?

下面这代码同时打开两个页面访问,第二个要等第一个输出1,2后才会输出1,http不是并发的么 输出结果: 2016-10-18 15:16:30.922600054 +0800 CST 0 1 2 3 4 5 6 7 8 9 10 11 12......35461 2016-10-18 15:16:31.923019561 +0800 CST 35462 为什么在输出第二个时间之后还会输出一个channel 3546...阅读全文

go调用c/c++ dll 函数,char*参数及返回值问题

如:dll中有个函数, char* myfun(char* a) a为输入输出参数,返回值为char* 请问, 调用时该怎样传参数a(a的值改变后,go程序会继续调用的),返回值该如何接收(注意:请考虑char*为二进制流) 如:r1,r2,r3 := syscall.Syscall(uintptr(myfun),1,XXX,0,0,0) 1. 对r1怎样操作,可以取到返回值? 2. a为输入输出参数,意思就是,myfun会取到a的值,并改变a的值,a的值改变后,go中怎样取到了?a该怎么传递了...阅读全文

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

C++面向对象之string类的使用详解

  1.包含头文件string,使用命名空间;   2.声明和定义string。 ![1.png](http://studygolang.qiniudn.com/161009/0d053d9e9c611ba9197e4a6afeeb5482.png) 1)声明一个string类型的变量str1;   2)声明并定义一个string类型的变量str2;   3)声明并定义一个string类型的变量str3;   4)声明并定义一个string类型的变量str4;   5)声明并定义一个string类型的变量str5,它的值为十个a;   6)利用变量str5创建str6,两个变量是一样的内容。   3.字符串的加法 ![2...阅读全文

《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

golang+linux+pipline

golang里可以通过[os/exec]包调用linux里的命令,然而对于linux里的管道(“|”)却不能直接使用。所以写了一个管道的接口如下。 func Pipline(cmds ...*exec.Cmd) ([]byte, []byte, error) { // At least one command if len(cmds) < 1 { return nil, nil, nil } var output bytes.Buffer var stderr bytes.Buffer var err error maxindex := len(cmds) - 1 cmds[maxindex].Stdout = &output cmds[maxindex].Stderr = &stderr ...阅读全文

博文 2015-11-22 03:00:00 hezhixiong

<12> go panic

import ( "fmt" "os" ) func main() { fmt.Println("Start Main func()") panic("a problem") _, err := os.Create("/sss/sss") if err != nil { panic(err) } } // 输出 Start Main func() panic: a problem goroutine 1 [running]: main.main() /Users/zengningzhong/Documents/souche/go/panic.go:18 +0x124 goroutine 2 [runnable]: runtime.forcegchelper() /usr/local/Cell...阅读全文

博文 2016-02-08 23:00:00 a11101171