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

golang websocket的例子

最近写了一个chrome的websocket extension, server端用的是Java的Netty框架, 后来发现golang 实现websocket 非常简单,高效, 下面是例子, 简单实现了用户登录,广播,相当于聊天室! package main import ( "code.google.com/p/go.net/websocket" "html/template" "log" "net/http" "os" "strings" "time" ) const ( listenAddr = "localhost:9527" // server address ) var ( pwd, _ = os.Getwd() RootTemp = template.Must(templat...阅读全文

博文 2015-06-17 20:03:47 u013834131

golang的cmd包使用例子

使用案例代码: package main import ( "bytes" "fmt" "log" "os/exec" ) func main() { cmd := exec.Command("php", "D:/baiduyun/command/application/cli", "read") var out bytes.Buffer cmd.Stdout = &out err := cmd.Start() if err != nil { log.Fatal(err) } log.Printf("Waiting for command to finish...") fmt.Println(cmd.Args) err = cmd.Wait() if err != nil { log.Pri...阅读全文

博文 2014-10-04 19:27:25 chen yuwen

golang中的hash函数

go语言中提供了MD5、SHA-1等几种哈希函数,下面这个例子是使用MD5和SHA-1值来对内容加密: package main import ( "crypto/md5" "crypto/sha1" "fmt" ) func main() { TestString := "Hi, pandaman!" Md5Inst := md5.New() Md5Inst.Write([]byte(TestString)) Result := Md5Inst.Sum([]byte("")) fmt.Printf("%x\n\n", Result) Sha1Inst := sha1.New() Sha1Inst.Write([]byte(TestString)) Result = Sha1Inst.Sum...阅读全文

博文 2018-09-10 23:34:40 时间里的小恶魔

golang template 例子

golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是很不错的,使用起来非常方便. package main import ( "fmt" "os" "text/template" ) type Latlng struct { Lat float32 Lng float32 } func (latlng Latlng) String() string { return fmt.Sprintf("%g/%g", latlng.Lat, latlng.Lng) } func main() { data := []template.FuncMap{} data = append(data, template.FuncMap{"name":"dotcoo1", "u...阅读全文

博文 2014-10-05 19:42:32 DarkWingBoy

Go简单排序

写代码的时候发现需要对map[int64]int64排序,golang中sort包来解决这个问题,下面是从网上找的2个例子,备忘下。 例子一: package main import ( "fmt" "sort" ) func main() { m := map[string]string{"b": "15", "z": "123123", "x": "sdf", "a": "12"} mk := make([]string, len(m)) i := 0 for k, _ := range m { mk[i] = k i++ } sort.SortStrings(mk) fmt.Println(mk) } 例子二: // A data structure to hold a key/val...阅读全文

博文 2014-10-09 16:54:28 Rhino(犀牛)

Unity3D 通过 http 方式 , 访问 go http server 的 例子

Unity部分: 新建个脚本,挂在随便一个object下面。代码如下: using UnityEngine; using System.Collections; using System.Text; public class TestScript : MonoBehaviour { public string url = "http://127.0.0.1:8000/test"; public string test_string; // Use this for initialization IEnumerator Start () { WWW www = new WWW (url); yield return www; print (www.bytes); test_string = S...阅读全文

博文 2015-03-09 09:00:01 FaintX

golang实现一个http服务器例子

package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() fmt.Println(r.Form) fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k, v := range r.Form { fmt.Println("key:", k) fmt.Println("val:", strings.Join(v, "")) } fmt.Fp...阅读全文

博文 2015-07-27 15:00:06 webyh

golang tls 似乎例子

Hi, Can you help to figure out what's wrong with the following TLS test code? It's just a echo server, the expected result is to get echo string from server, but client always gets nothing. client.go: =============================================================== package main import ( "fmt" ; "crypto/tls"; "os" ) func main() { conn , err := tls.Di...阅读全文

博文 2015-06-17 20:03:47 huithe

golang之分模块导包例子

liteIde建立sample工程,目录自定 我这边工程叫myTest,目录结构如下 ├── doc.go ├── main.go └── mm ├── a.go └── b.go main.go package main import ( "./mm" ) func main() { mm.Mm() } a.go package mm import ( "fmt" ) func Mm() { zz() fmt.Println("mmmmmmmmmmm") } b.go package mm import ( "fmt" ) func zz() { fmt.Println("zzzzzzzzzzz") ...阅读全文

博文 2014-10-04 19:26:12 ziyouchutuwenwu

golang log使用

使用golang的基本log包能够满足日志的问题,特地做了一个例子如下,但感觉还是不太好,如日志文件的大小的控制等。先这样用着吧package mainimport ( "log" "os")func main(){ fileName:= "log_debug.log" //logFile,err := os.Create(fileName) logFile,err := os.OpenFile(fileName,os.O_RDWR|os.O_CREATE|os.O_APPEND,0644) defer logFile.Close() if err != nil { log.Fatalln("open file error!") } debugLog := log.New(logFile,"...阅读全文

博文 2017-05-17 07:16:24 haolifengwang

golang cookie、json、base64的小例子

今天项目中要将map存入cookie,于是大象哥研究了下json和base64,写了个小例子 一、将map存入cookie //要存入cookie的map your := map[string]string{} your["isuser"] = isuser your["username"] = username your["password"] = d.Strtomd5(password) //将map转成json 转换后的是[]byte,需要string(your_byte)后就是json了 your_byte, _ := json.Marshal(your) //将json base64一下 b64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRST...阅读全文

博文 2014-10-04 19:27:43 别人说我名字很长

golang beego crud

本例子介绍下面这些函数的使用方法。 type QuerySeter interface { Filter(string, ...interface{}) QuerySeter Exclude(string, ...interface{}) QuerySeter Limit(interface{}, ...interface{}) QuerySeter OrderBy(...string) QuerySeter Count() (int64, error) Exist() bool All(interface{}, ...string) (int64, error) One(interface{}, ...string) error ... } package main import ( "f...阅读全文

博文 2015-05-27 15:00:01 悦亮工作室

golang并发例子

package main import ( "fmt" "math/rand" "time" ) func main() { fmt.Println("start") chn := make(chan int, 5) rand.Seed(time.Now().UnixNano()) for i := 0; i < 5; i++ { x := rand.Intn(5) fmt.Println("i is", i, "rand is:", x) go worker(i, x, chn) } fmt.Println("end") for i := 0; i < 5; i++ { j := <-chn fmt.Println(j) } } func worker(i int, sleepInt in...阅读全文

博文 2015-03-31 10:00:03 coseyo

go 依赖注入 简单 例子

go 依赖注入 库 利用库 github.com/facebookgo/inject 例子 package main import ( "fmt" "github.com/facebookgo/inject" ) type DBEngine struct { Name string } type UserDB struct { Db *DBEngine `inject:""` } type UserService struct { Db *UserDB `inject:""` } type App struct { Name string User *UserService `inject:""` } func (a *App) Create() string { return "creat...阅读全文

博文 2019-01-09 23:35:12 295631788

<11> go sort排序

go里有sort的排序的包,可以直接使用,也可以使用func来自定义 下面给例子 //****************************************************/ //Copyright(c) 2015 Tencent, all rights reserved // File : sorting.go // Author : ningzhong.zeng // Revision : 2015-11-26 19:58:56 // Description : //****************************************************/ import ( "fmt" "sort" ) // 自定义func排序 type ByLengt...阅读全文

博文 2016-04-19 15:00:01 a11101171

go语言 输出一个数字的例子

// Copyright 漏 2010-12 Qtrac Ltd. // // This program or package and any associated files are licensed under the // Apache License, Version 2.0 (the "License"); you may not use these files // except in compliance with the License. You can get a copy of the License // at: http://www.apache.org/licenses/LICENSE-2.0. // // Unless required by applicable...阅读全文

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

书籍:The Way To Go,第二部分

Interface type Shaper interface { Area() float32 } type Square struct { side float32 } func (sq *Square) Area() float32 { return sq.side * sq.side } func main() { sq1 := new(Square) sq1.side = 5 areaIntf := Shaper(sq1) // areaIntf := sq1 fmt.Printf(“%f\n”, areaIntf.Area()) } r := Rectangle{5, 3} q := &square{5} shapes := []Shaper{r, q} for n, _ := ...阅读全文

博文 2014-10-13 16:00:01 月光独奏

golang C 混编

简单例子 cGo.go package main //#include //void callC() { // printf("Calling C code!\n"); //} import "C" import "fmt" func main() { fmt.Println("A Go statement!") C.callC() fmt.Println("Another Go statement!") } 稍复杂例子 callC.h #ifndef CALLC_H #define CALLC_H void cHello(); void printMessage(char* message); #endif callC.c #include #inc...阅读全文

博文 2018-06-22 22:34:39 wyrover

求助gopl练习 3.13 关于const声明的iota的使用

原题如下: write const declarations for KB,MB,up through YB as compactly as you can. 这里的k,m等都是10的次方,比如KB是1000,不是1024 书上有例子是1024的


const(
_=1<<(10*iota)
KiB//1024
MiB//1048576
...
)//太多了就不打了
每个后面乘上1000的我想到了,但是感觉不是很简洁,求帮...阅读全文

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

golang 并行执行任务的例子

出自 kubernetes/staging/src/k8s.io/client-go/util/workqueue/parallelizer.gotype DoWorkPieceFunc func(piece int)// Parallelize is a very simple framework that allow for parallelizing// N independent pieces of work.func Parallelize(workers, pieces int, doWorkPiece DoWorkPieceFunc) { toProcess := make(chan int, pieces) for i := 0; i < pieces; i++ { toPr...阅读全文

博文 2019-02-13 09:34:43 shinwing

带buffer的chan能同步吗?

具体看下面2个例子: 无 buffer 的: http://play.golang.org/p/RwPbCcueWh func main() { ch := make(chan bool) go func() { println("fuck buffer channel") <-ch }() ch <- true } 有buffer的: http://play.golang.org/p/YV9H6WPYuJ func main() { ch := make(chan bool, 1) go func() { println("fuck buffer channel") <-ch }() ch <- true } 第二个程序(有buffer的chan)无法保证收/发同步, 导致main退出时 ...阅读全文

博文 2015-06-16 08:51:24 chai2010

golang 小例子

import ( "bytes" "encoding/binary" "encoding/gob" "fmt" ) func str_to_byte(src string) []byte { //strSlice := []string{src} buffer := &bytes.Buffer{} gob.NewEncoder(buffer).Encode(src) return buffer.Bytes() } func uint64_to_byte(src uint64) []byte { buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, src) return buf } func main() { var u uint64 ...阅读全文

博文 2018-06-02 16:30:01 chris-cp

golang之channel

Buffered Channels package main import "fmt" func main() { ch := make(chan int, 2) ch <- 1 ch <- 2 fmt.Println(<-ch) fmt.Println(<-ch) } 如果操作一个空的channel会怎么样呢? package main import "fmt" func main() { ch := make(chan int, 2) ch <- 1 ch <- 2 fmt.Println(<-ch) fmt.Println(<-ch) v, ok := <-ch fmt.Println(v,ok) } 12fatal error: all goroutines are asleep -...阅读全文

博文 2017-12-11 16:00:01 gattaca

基础问题:关于【named type】 和 【unnamed type】

【https://golang.org/ref/spec#Types 】--->这是关于type的描述。里面有两句: Types may be named or unnamed. Named types are specified by a (possibly qualified) type name; unnamed types are specified using a type literal, which composes a new type from existing types. 有点不大理解,因为下面没有举出例子。所以还是不懂什么叫named type,什么叫unnamed type。 本来想跳过,以后再慢慢接触,可是另一个地方又出现这个named和 unnamed...阅读全文

golang的ssh例子

package main import ( "github.com/dynport/gossh" "log" ) func MakeLogger(prefix string) gossh.Writer { return func(args ...interface{}) { log.Println((append([]interface{}{prefix}, args...))...) } } func main() { client := gossh.New("192.168.1.106", "mmc") client.SetPassword("123456") client.DebugWriter = MakeLogger("DEBUG") client.InfoWriter = Mak...阅读全文

博文 2015-12-15 21:00:01 ziyouchutuwenwu

golang 小例子

import ( "bytes" "encoding/binary" "encoding/gob" "fmt" ) func str_to_byte(src string) []byte { //strSlice := []string{src} buffer := &bytes.Buffer{} gob.NewEncoder(buffer).Encode(src) return buffer.Bytes() } func uint64_to_byte(src uint64) []byte { buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, src) return buf } func main() { var u uint64 ...阅读全文

博文 2018-06-02 17:30:00 chris-cp

golang 操作 系统环境变量小例子

package main import ( "fmt" "os" "strings" ) func main() { err := os.Setenv("XIAO", "xiaochuan") //临时设置 系统环境变量 if err != nil { fmt.Println(err.Error()) } fmt.Println(os.Getenv("XIAO")) //获取环境变量 fmt.Println(os.Getenv("GOPATH")) for _, v := range os.Environ() { //获取全部系统环境变量 获取的是 key=val 的[]string str := strings.Split(v, "=") fmt.Printf("key=%s,val=%s...阅读全文

博文 2016-11-29 07:00:05 liangguangchuan

GO语言学习——简单的key-valeu数据库的实现

写一个简单的key-value数据库,实现下面几个接口。 db:new() => Db. db:destroy(Db) => ok. db:write(Key, Element, Db) => NewDb. db:delete(Key, Db) => NewDb. db:read(Key, Db) =>{ok, Element} | {error, instance}. db:match(Element, Db) => [Key1, ..., KeyN]. 例子: 1> c(db). {ok,db} 2> Db = db:new(). [] 3> Db1 = db:write(111,222, Db). [{111,222}] 4> Db2 = db:write(333, 444, Db1)...阅读全文

博文 2015-12-21 21:00:02 zhenxing1114

2.Go by Example: Values

Go has various value types including strings, integers, floats, booleans, etc. Here are a few basic examples. Strings, which can be added together with + Integers and floats. Booleans, with boolean operators as you’d expect. package main import "fmt" func main() { fmt.Println("go" + "lang") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0...阅读全文

博文 2015-06-17 20:15:57 u013487968

cgo 之 go 访问c 的数据 - int

以int 为例子. 适合int系列, float double . 不适用于字符串. ``` package main //#include //static int m; //int* get_m_addr(){return &m;} //void show_m(){printf("m=%d\n",m);} //void set_m(void *p,int x) {*(int*)p = x;} import "C" import "unsafe" func main() { t := C.get_m_addr() *t = 5 C.show_m(); x := 100 *t = C.int(x) C.show_m() y := 200 C.set_m(unsafe.Po...阅读全文

博文 2019-06-11 22:45:05 wzy2687

通过例子学习 Go 和 Rust ---- Interface 和 Trait

Go 的接口(interface)和 Rust 的特征(Trait)是经常被放在一起做比较的概念。咱可以用它们来实现计算不同几何形状的面积和周长的功能。 Go type geometry interface { area() float64 perim() float64 } type rect struct { width, height float64 } type circle struct { radius float64 } func (r rect) area() float64 { return r.width * r.height } func (r rect) perim() float64 { return 2*r.width + 2*r.height } func (c...阅读全文

博文 2020-03-03 17:32:48 Tericoder

Go-Hashes and Cryptography

关于这一部分,仅给出一个MD5的例子和一个SHA1的例子,分别对应: - Windows平台下面的MD5算法 - 计算SHA1 代码: package main import ( "fmt" "crypto/md5" "crypto/sha1" ) func printBytes(x []byte) { for _, b := range x { fmt.Printf("%02x ", b) } fmt.Println() } /* C:\Go\bin\go.exe run D:\examples\helloworld.go 6c d3 55 6d eb 0d a5 4b ca 06 0b 4c 39 47 98 39 aa f4 c6 1d dc c5 e8 a2 da be de 0f ...阅读全文

博文 2016-09-05 10:00:01 u013344915

Go-Hashes and Cryptography

关于这一部分,仅给出一个MD5的例子和一个SHA1的例子,分别对应: - Windows平台下面的MD5算法 - 计算SHA1 代码: package main import ( "fmt" "crypto/md5" "crypto/sha1" ) func printBytes(x []byte) { for _, b := range x { fmt.Printf("%02x ", b) } fmt.Println() } /* C:\Go\bin\go.exe run D:\examples\helloworld.go 6c d3 55 6d eb 0d a5 4b ca 06 0b 4c 39 47 98 39 aa f4 c6 1d dc c5 e8 a2 da be de 0f ...阅读全文

博文 2016-09-08 07:00:06 u013344915

golang struct 中特殊类型

以下是一个特殊的例子: package main import "fmt" type wenbin struct { name string number int } type wenbinstruct struct { *wenbin } func(wb *wenbin) testFunc(){ fmt.Println("wenbintestjklsd") } func main(){ fmt.Println("wenbin") wenbinptr := &wenbin{name:"wenbin",number:100} wenbintest := wenbinstruct{wenbinptr} fmt.Println(wenbintest.name) fmt.Println(wenbin...阅读全文

博文 2018-08-18 16:34:50 bradyjoestar

golang when is nil not nil

在开发中,我们经常会遇到一个nil值不等于nil,先看一下下面这个例子 type itest struct { a string } func printA() *itest{ return nil } func main() { var i interface{} = printA() fmt.Printf("i is nil %v, i = %v", i == nil, i) } 最后输出结果是 i is nil false, i = 这是因为interface是由两个元素type:T 和value: V所表示。V是具体值,比如int, struct, pointer的具体值。var i interface = 3, i的type是int, value是3。只有当type和va...阅读全文

博文 2019-10-09 18:32:42 bunnyhuangw