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

Golang 获取系统环境变量

Golang 要获取系统的环境变量需要使用os包中的env 导入”os”包通过os包中的Getenv方法来获取 func Getenv(key string) string { } 示例代码: package main import "fmt" import "os" func main(){ var JAVAHOME string JAVAHOME = os.Getenv("JAVA_HOME") fmt.Println(JAVAHOME) } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering =...阅读全文

博文 2015-06-17 20:03:45 happinessaflower

GoLang获取struct的tag

GoLang获取struct的tag内容;beego的ORM中也通过tag来定义参数的。 获取tag的内容是利用反射包来实现的。示例代码能清楚的看懂! 1 package main 2 import ( 3 "fmt" 4 "reflect" // 这里引入reflect模块 5 ) 6 type User struct { 7 Name string "user name" //这引号里面的就是tag 8 Passwd string "user passsword" 9 } 10 func main() { 11 user := &User{"chronos", "pass"} 12 s := reflect.TypeOf(user).Elem() //通过反射获取type定义 13 fo...阅读全文

博文 2015-03-13 03:00:01 chuanheng

Go实例学:break 和 continue

利用break 可以提前退出循环,break 终止当前的循环;也可以定义标签,break指定的循环体。 break的用法示例1: package main import ( "fmt" ) func main() { for i := 0; i < 10; i++ { if i > 5 { break //终止这个循环,只打印0到5 } fmt.Println(i) } } 输出结果 0 1 2 3 4 5 break的用法示例2: 循环嵌套循环时,可以在break 后指定标签。用标签决定哪个循环被终止 package main import ( "fmt" ) func main() { J: for j := 0; j < 5; j++ { for i := 0; i < 10; i++...阅读全文

博文 2014-12-01 08:00:02 Goopand

golang时间处理

golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间 str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) # 2014-01-07 09:32:12 str格式化时间转时间戳 the_time :=...阅读全文

博文 2014-10-04 19:27:10 千山万水

Golang Aes 加密示例

Aes加密的一个示例。供各位参考. package main import ( "crypto/aes" "crypto/cipher" "fmt" ) func main() { aesEnc := AesEncrypt{} arrEncrypt, err := aesEnc.Encrypt("abcde") if err != nil { fmt.Println(arrEncrypt) return } strMsg, err := aesEnc.Decrypt(arrEncrypt) if err != nil { fmt.Println(arrEncrypt) return } fmt.Println(strMsg) } type AesEncrypt struct { } func...阅读全文

博文 2015-05-12 21:00:02 王岩0001

go语言 类型:布尔类型

Go语言中的布尔类型与其他语言基本一致,关键字也为bool,可赋值为预定义的true和false示例代码如下: var v1 bool v1 = true v2 := (1 == 2) // v2也会被推导为bool类型 //from http://www.cnblogs.com/osfipin/ 布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。以下的示例是一些错误的用法,会导致编译错误: var b bool b = 1 // 编译错误 b = bool(1) // 编译错误 以下的用法才是正确的: var b bool b = (1!=0) // 编译正确 fmt.Println("Result:", b) // 打印结果为Result: true 布尔可以做3种逻辑运算,&...阅读全文

博文 2015-10-09 11:00:11 osfipin

Go语言参数中的三个点是干什么的

Go语言函数中有三个点...表示为可变参数,可以接受任意个数的参数。 示例代码: package main import "fmt" func Greeting(prefix string, who ...string) { fmt.Println(prefix) //接收到who是一个数组,可以用for遍历。 for _, name := range who { fmt.Println(name) } } func main() { Greeting("Hello:", "tom", "mike", "jesse") } 输出结果: Hello: tom mike jess...阅读全文

博文 2015-03-04 03:00:02 baiyuxiong

关于golang的多进程的控制与示例程序

我们写C 的时候,假如用到多进程,我们通常都会用信号,管理等来进程进程间的通信, 那么golang是怎么实现这个的呢?? 直接看码说话吧 package main import ( "fmt" "time" ) func main() { timeout := make(chan bool, 1) go func() { fmt.Println("------------ 子进程1--------------") t1 := time.Now().UnixNano() fmt.Println(t1) fmt.Println("这个一定会执行") time.Sleep(3 * time.Second) // timeout <- true timeout <- true }() fmt.Pri...阅读全文

博文 2016-08-19 12:00:03 r00txx

golang set 使用

先获取set包 go get -u gopkg.in/fatih/set.v0 如下演示set并集,交集,差集的计算 package main import ( "fmt" "gopkg.in/fatih/set.v0" ) /*set并集 交集 差集计算示例*/ func main() { a := set.New(set.ThreadSafe) a.Add(1) a.Add(2) a.Add(3) b := set.New(set.ThreadSafe) b.Add(2) b.Add(3) b.Add(4) //并集 unionSet := set.Union(a, b) fmt.Printf("并集:%v\n", unionSet) //交集 intersectionSet := se...阅读全文

博文 2018-11-13 23:34:40 小风吹的我乱了

百度网盘开放平台 Go SDKPan

# Pan Go Sdk 该代码库为百度网盘开放平台Go语言的SDK,详细请参考官方技术文档 ## github地址 [https://github.com/jsyzchen/pan](https://github.com/jsyzchen/pan) 欢迎star&issue ## 下载 ### 使用Go mod 在您的项目中的`go.mod`文件内添加这行代码 ```bash require github.com/jsyzchen/pan v0.0.1 ``` 并在项目中引入`github.com/jsyzchen/pan` ```go import ( ...阅读全文

开源项目 2021-01-07 17:44:06

golang slice 排序

如下示例为,在一个Person切片中,按年龄大小进行排序 package main import ( "fmt" "sort" ) /*slice 排序示例*/ type Person struct { Age int } type PersonSlice []Person func (s PersonSlice) Len() int { return len(s) } func (s PersonSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s PersonSlice) Less(i, j int) bool { return s[i].Age < s[j].Age } func main() { persons := Pe...阅读全文

博文 2018-11-13 22:34:39 小风吹的我乱了

golang 项目多文件编程示例

src/test_interface.git/main.go package main import ( task "test_interface.git/task" ) func main() { do := task.NewInter(task.NewTask()) do.OnInit() } src/test_interface.git/task/print.go package task import ( "fmt" ) type Stve struct { } func NewTask() Inter { return &Stve{} } func (self *Stve) OnInit() { fmt.Println("Hello wrold") } src/test_inter...阅读全文

博文 2015-10-15 11:00:01 徐学良

基于 Golang 的 xls 读取类库:xls

Golang 编写的 xls 读取类库,能够实现 xls 表格的读取功能 func (w *WorkBook) ReadAllCells() (res [][]string) { for _, sheet := range w.Sheets { w.PrepareSheet(sheet) if sheet.MaxRow != 0 { temp := make([][]string, sheet.MaxRow+1) for k, row := range sheet.Rows { data := make([]string, 0) if len(row.Cols) > 0 { for _, col := range row.Cols { if uint16(len(data)) <= col....阅读全文

博文 2015-10-24 03:00:00 zhuiluoyu

golang读取文本文件示例

一般文件比较小的话可以将文件全部读入内存中,然后转换成string再按行分割一下 func GetFileContentAsStringLines(filePath string) ([]string, error) { logger.Infof("get file content as lines: %v", filePath) result := []string{} b, err := ioutil.ReadFile(filePath) if err != nil { logger.Errorf("read file: %v error: %v", filePath, err) return result, err } s := string(b) for _, lineStr := ...阅读全文

博文 2016-02-10 02:00:02 xielingyun

golang ftp客户端示例 支持断点续传

package main import ( ftp4go "github.com/shenshouer/ftp4go" "fmt" "os" ) var( downloadFileName = "DockerToolbox-1.8.2a.pkg" BASE_FTP_PATH = "/home/bob/" // base data path in ftp server ) func main() { ftpClient := ftp4go.NewFTP(0) // 1 for debugging //connect _, err := ftpClient.Connect("172.8.4.101", ftp4go.DefaultFtpPort, "") if err != nil { fmt....阅读全文

博文 2015-11-18 13:00:02 shenshouer

golang.org/x/crypto/scrypt应该如何使用?

正在看《GO WEB编程》,里面看到了高级的加密方案, http://godoc.org/golang.org/x/crypto/scrypt 想按上面的示例写,结果总是不行,第二个参数salt到底怎么传入啊? str := "123456" dk := scrypt.Key([]byte(str), []byte("12345678"), 16384, 8, 1, 32) fmt.Printf("专家方案(123456) = %x ", dk) 这样子写不可以...阅读全文

golang语法总结(八):类型零值、类型别名、类型转换

类型零值 变量声明为某种类型后的值就为该类型的零值,它不是空值。通常数值类型默认为0,bool为false,string为空字符串 类型别名 比如: type text stringfunc main() { var t text = "hello world" fmt.Println(t)} 类型转换 Go语言不存在隐式转换,必须显式转换,并且只能在两种相互兼容的类型间转换,转换示例: a := 3.14b := int(a)fmt.Println(b)var c int32 = 256var d = float64(c)fmt.Println(d...阅读全文

博文 2016-02-22 14:00:07 QQ245671051

golang 自定义错误示例

package main import ( "fmt" "time" ) // MyError is an error implementation that includes a time and message. type MyError struct { When time.Time What string } func (e MyError) Error() string { return fmt.Sprintf("%v: %v", e.When, e.What) } func oops() error { return MyError{ time.Date(1989, 3, 15, 22, 30, 0, 0, time.UTC), "the file system has gone...阅读全文

博文 2015-10-24 23:00:08 u011363248

Go-ini文件解析

官网 https://github.com/larspensjo/config 示例代码 package main import ( "fmt" "strconv" "github.com/robfig/config" ) type Student struct { name string age int } const ( CFG_FIE_NAME = "students.cfg" SECTION1 = "Student 1" SECTION2 = "Section 2" OPTION_NAME = "Name" OPTION_AGE = "Age" ) func foo() { c := config.NewDefault() tom := Student{"Tom", 5} jerry...阅读全文

博文 2016-11-24 11:00:01 u013344915

Go-多文件构建

说明 go提供了package机制,可以构建库文件/函数到GOPATH中。对于仅和某个应用相关的模块来讲,放到GOPATH就不合适。但全部代码放到一个go文件又难以阅读和维护,此时,可以把代码分散到各个独立职责的文件中,但取为相同的package。 示例 这里有两个文件:main.go和util.go main.go package main //import "fmt" func main() { foo() } util.go package main import "fmt" func foo() { fmt.Println("foo()") } 运行 $ go run main.go util.go foo() $ 子目录 如果用子目录进行组织,则不行: $ ls main.go u...阅读全文

博文 2016-11-29 07:00:03 u013344915

golang json []byte类型base64编码

golang json Marshal默认对[]byte类型进行base64编码处理,Unmarshal时也只能用[]byte类型接收才能还原。 代码示例: package main import ( "encoding/json" "log" ) type testa struct { X string Y []byte } type testb struct { X string Y interface{} } func main() { a := testa{X: "xtest", Y: []byte("ytest")} log.Println(a) b, _ := json.Marshal(a) log.Println(string(b)) var c testa var d tes...阅读全文

博文 2019-03-20 17:34:42 yhao917

阿里云存储OSS golang语言上传文件示例。

由于阿里那边没有提供golang示例只有自己写一个,如果发现问题希望给予纠正。 配置信息自己替换。 调用方法 Putobject("4.txt", []byte("123123fasdfasdfadfadfasfasdfsadf")) package oss import ( "bytes" "crypto/hmac" "crypto/sha1" "encoding/base64" "fmt" "io/ioutil" "mime" "net/http" "path/filepath" "time" ) func authorization(accesskeysecret, method, filemd5, filetype, date, CanonicalizedOSSHeaders, Ca...阅读全文

博文 2016-12-01 08:00:19 gzw13999

golang zip 操作示例

下面的代码,来之golang的示例源码,其中涉及的常见zip文件,修改了部分代码, 在ExampleWriter中添加了如下 fw, err := os.Create("/home/xxx/mem_sub/go/z.zip") if err != nil { //panic(err) fmt.Println(err) return } defer fw.Close()屏蔽了以下部分 // Create a buffer to write our archive to. // buf := new(bytes.Buffer) 使之能够创建看的见的zip文件 package main import ( "archive/zip" // "bytes" "fmt" "io" "log" "os" ...阅读全文

博文 2014-10-04 19:26:10 u011363248

GoLang----Json RawMessage使用

在程序中使用Json时,有时某个字段其结构是根据其他字段(比如有个类型含义的字段)决定的,这个时候在解析时,需要先解析一部分,进行判断后,再解析出合适的Json结构。这时就需要用到Golang Json包的RawMessage这个对象。 示例代码如下: package main import ( "encoding/json" ) type UpLoadSomething struct { Type string Object interface{} } type File struct { FileName string } type Png struct { Wide int Hight int } func main() { input := ` { "type": "File", "...阅读全文

博文 2019-04-15 18:34:40 李_MAX

Go-指针、传值与传引用、垃圾回收

要点 Go使用的*、&、new()这些运算符,和C++的用法完全一样。 有传值和传引用/传地址的概念,和C++一样。 Go没有new对应的delete操作,而是采用Java一样的垃圾自动回收机制。 传引用或指针主要用于用户自定义类型。 示例 package main import "fmt" /* D:\examples>go run helloworld.go 10 100 5 100 D:\examples> */ func main() { i := 10 pass_by_value(i) fmt.Println(i) pass_by_reference(&i) fmt.Println(i) x := new(int) *x = 5 fmt.Println(*x) pass_by_re...阅读全文

博文 2016-09-06 10:00:04 u013344915

Golang算法

面试题03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 10000...阅读全文

博文 2020-05-06 11:32:59 DoneIsBetter

Go语言:使用sort包对任意类型元素的集合进行排序

使用sort包的函数进行排序时,集合需要实现sort.Inteface接口,该接口中有三个方法: // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) bool // Swap swaps the elements with indexes i and j. Swap(i, j int) 以下为简单示例: //对任意对象进行排序 type Person struct { name string age ...阅读全文

博文 2015-06-17 23:02:08 books1958

BitTorrent DHT 协议的 GO 实现 DHT

DHT 是BitTorrent DHT 协议的实现,采用Go语言。主要包括以下部分: * [BEP-3 (part)](http://www.bittorrent.org/beps/bep_0003.html) * [BEP-5](http://www.bittorrent.org/beps/bep_0005.html) * [BEP-9](http://www.bittorrent.org/beps/bep_0009.html) * [BEP-10](http://www.bittorrent.org/beps/bep_0010.html) 展示截图: ![image](http://static.oschina.net/uploads/space/2016/0809/1135...阅读全文

开源项目 2016-08-29 04:00:02 shiyanhui

消息摘要算法示例(python和go)

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。 一、python消息摘要示例 代码如下: #! /usr/bin/python ''' File : testHash.py Author : Mike E-Mail : Mike_Zhang@live.com ''' import hashlib src = raw_input("Input string : ") funcNameList = ["MD5","SHA1","SHA224","SHA256","SHA384","SHA512"] funcMap = { "MD5" : lambda cnt : hashlib.md5(cnt).hexdi...阅读全文

博文 2014-10-04 19:26:50 MikeZhang

《go语言程序设计》学习(一)

序言 2年前的这个时候认识到了golang,然后兴匆匆的去书店买了本书,go语言,云动力吧好像是,结果拿过来一开始,环境就设置不上,折腾了几天,然后就不了了之了。 1年前的这个时候,再次路过书店,看到了《go语言程序设计》这本书,按耐不住心痒痒,又买回来,结果看了两章,又头昏脑胀,没坚持下去。 前几天看很多人都在讨论golang,我就又去把书翻出来了,这次决定要再前进一步,争取把书看完。 (一个拖延症的懒癌患者的内心,是咆哮的) 一,示例代码:gobook已下载 二,开发环境:go 1.4,vim-go,vim-go的插件还是折腾了一下。。有些包直接go get拿不到,到golang的网站上,提供了一个tar的下...阅读全文

博文 2015-08-02 03:00:01 mruoli

Go 图像处理包Imaging

Imaging 是一个 Go 图像处理包,提供了基本的图像处理功能(调整大小,旋转,翻转,裁剪等),这个包基于标准的 Go 图像包。 采用任何实现 `image.Image` 接口作为输入的图像类型,并返回 `*image.NRGBA` 类型的新图像(32 位 RGBA 颜色) **示例:** 原始图像(将由 512x512px 转变为 128x128px) ![image](https://static.oschina.net/uploads/space/2017/0303/150730_wXfc_2720166.png...阅读全文

像Python那样跑go1的代码(Windows下双击运行)

Windows下,以".py"为扩展名的Python程序可以双击运行,用起来很爽,现在玩go语言,我也想这么玩…… 这里说说我的玩法。 示例代码(test.go): package main import ( "fmt" "time" ) func main() { fmt.Println("Test") time.Sleep(time.Duration(6) * time.Second) } Windows7 下,修改注册表: 路径:HKEY_CLASSES_ROOT\go_auto_file\shell\open\command 修改如下: "c:\go\bin\go.exe" run "%1" 现在在Windows下双击即可运行。比如示例代码的双击后运行效果: title为go.exe...阅读全文

博文 2014-10-04 19:26:49 MikeZhang

Go语言入门资料

1:Go语言项目地址 http://code.google.com/p/go/ 2:Go语言下载地址 http://code.google.com/p/go/downloads/list 3:Go语言中文翻译项目地址 http://code.google.com/p/golang-china/ 4:Goclipse插件下载地址 http://code.google.com/p/goclipse/ 5:Go语言官方在线入门示例 http://tour.golang.org/#1 6:Go语言API(CHM英文) http://download.csdn.net/detail/collonn/476655...阅读全文

博文 2014-11-10 12:00:04 collonn

golang flag使用示例

package main import ( "fmt" "flag" ) func main(){ data_path := flag.String("D","/home/manu/sample/","DB data path") log_file := flag.String("l","/home/manu/sample.log","log file") nowait_flag :=flag.Bool("W",false,"do not wait until operation completes") flag.Parse() var cmd string = flag.Arg(0); fmt.Printf("action : %s\n",cmd) fmt.Printf("data pat...阅读全文

博文 2015-08-31 19:00:01 徐学良

windows下go编码转换问题

github上有两个package做编码转换,都是基于iconv,用到了cgo,在linux下没有问题,在windows下用,非常麻烦。采用mingw安装libiconv也不行,一直提示找不到libiconv方法。 最终找到一个官方实现(纯go实现): https://code.google.com/p/go/source/checkout?repo=text gbk转utf-8示例: func gbk2utf8(str byte[]) ([]byte, error) { return ioutil.ReadAll(transform.NewReader(bytes.NewReader(str), simplifiedchinese.GBK.NewDecoder())) ...阅读全文

博文 2014-10-04 19:26:11 程序员Jack

Go-godoc帮助系统

可以用godoc查询某个包/package/库或库函数的使用方法。通过这个命令,就可以在本地快速查找某个函数的使用方法&示例,对于效率提升还是很有帮助。示例: D:\examples>godoc fmt Println use 'godoc cmd/fmt' for documentation on the fmt command func Println(a ...interface{}) (n int, err error) Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands an...阅读全文

博文 2016-10-10 03:00:07 u013344915

Go 语言编写 CPython 扩展 goPy

goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展。 示例代码: 01 package simple 02 03 import ( 04 "fmt" 05 "gopy" 06 ) 07 08 func example(args *py.Tuple) (py.Object, error) { 09 fmt.Printf("simple.example: %v\n", args) 10 py.None.Incref() 11 return py.None, nil 12 } 13 14 func init() { 15 methods := []py.Method{ 16 {"example", example, "example function"}, 17 } 1...阅读全文

博文 2014-10-04 19:26:34 shihao

Go中调用dll示例

package main import ( "syscall" ) func main(){ h, err := syscall.LoadLibrary("kernel32.dll") if err != nil { abort("LoadLibrary", err) } defer syscall.FreeLibrary(h) proc, err := syscall.GetProcAddress(h, "GetVersion") if err != nil { abort("GetProcAddress", err) } r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0, 0) print_version(uint32(r)) } fun...阅读全文

博文 2015-11-19 13:00:01 rznice

Golang操作elasticsearch(一)

Golang操作elasticsearch 使用第三方包:olivere github。总结一下olivere操作ES的常用功能,方便查阅。 说明:以下例子用到的es index:"test", es type:"test", es address: "http://10.1.1.1:9200" 新建es client func ESClient() (client *elastic.Client,err error){ file := "./log.log" logFile, _ := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766) // 应该判断error,此处简略 cfg := []elastic.ClientOpt...阅读全文

博文 2019-01-25 19:34:42 Mandelbrot_Kobe

理解oredev上go的一个示例

package main import( "io" "fmt" "log" "net" ) const listenaddr = "0.0.0.0:4000" var partner=make(chan io.ReadWriteCloser) func match(c io.ReadWriteCloser){ fmt.Fprintln(c,"wait for partner...") select{ case partner<-c: //do nothing case p := <-partner: chat(c,p) } } func chat(a,b io.ReadWriteCloser){ fmt.Fprintln(a,"yes,i got a partner...") fmt.Fpr...阅读全文

博文 2014-10-04 19:26:21 qingwa

golang 发送GET和POST示例

GET请求 get请求可以直接使用http.Get方法 简单 func main(){ resp, err := http.Get("https://baidu.com") if err != nil { panic(err) } defer resp.Body.Close() s,err:=ioutil.ReadAll(resp.Body) fmt.Printf(string(s)) } 复杂 func main() { params := url.Values{} Url, err := url.Parse("http://baidu.com?fd=fdsf") if err != nil { panic(err.Error()) } params.Set("a", "fdfds") p...阅读全文

博文 2018-02-11 16:34:40 soledad