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

golang实现二叉查找树

为简单起见,键值均为整型。 定义接口(tree.go): type Tree interface { Put(k, v int) //新增或修改 Get(k int) int //查询 Delete(k int) //删除 Size() int //树的大小 Min() int //最小键 DeleteMin() //删除最小键 } 二叉查找树(binary_tree.go): //二叉查找树 type BinaryTree struct { root *node n int } //创建节点 func newNode(k, v int) *node { return &node{k: k, v: v, sz: 1} } //创建二叉查找树 func NewBinaryTree() *Bin...阅读全文

博文 2017-09-03 07:05:00 imroc

2019-05-16

连接mongodb gopkg.in/mgo.v2 引入包 import ( "fmt" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) 定义一个model 注意 _id type User struct { _id bson.ObjectId `bson:_id` Upass string `bson:upass` Type int `bson:type` Uname string `bson:uname` } 连接 session, err := mgo.Dial("localhost:21117") if err != nil { fmt.Println("连接失败") fmt.Println(err) } else { fmt.Println("...阅读全文

博文 2019-05-16 16:34:44 sujeking

golang 常用包安装

常用到的: go get -v github.com/nsf/gocode go get -v github.com/rogpeppe/godef go get -v golang.org/x/tools/cmd/godoc go get -v golang.org/x/tools/cmd/goimports go get -v github.com/golang/lint/golint go get -v github.com/derekparker/delve/cmd/dlv go get -v github.com/lukehoban/go-find-references go get -v github.com/lukehoban/go-outline go get -v sourc...阅读全文

博文 2018-03-09 14:30:02 ibgo

golang mmo游戏 aoi算法

type( //十字链路 GameNode struct { xPrev *GameNode xNext *GameNode yPrev *GameNode yNext *GameNode mObj IGameBase X int Y int } ) var( m_XNode *GameNode m_YNode *GameNode ) //添加到十字链路 func AddNode(node* GameNode){ //x handle var tail *GameNode bFind := false if m_XNode == nil || m_YNode == nil{ m_XNode, m_YNode = node, node return } for curNode := m_XNo...阅读全文

博文 2019-08-12 18:07:33 bobohume

Ansible 怎么可以缺少阿里云

摘要: 本文转载自 阿里云CodePipeline客户“小草”的个人博客,Step By Step的呈现了从0配置一个nodejs 静态网站发布到OSS,并通过CDN回源加速的过程。 本文转载自 阿里云CodePipeline客户“小草”的个人博客,原文地址:  http://www.forkjoin.org/2017/08-21-CodePipeline-ossweb/ 现在流行前后端彻底分离,前端生成webpack 打包的静态文件。可以通过 CodePipeline构建后发布到oss 进行发布前端。下面进行详细讲解 第一步 申请开通 CodePipeline   CodePipeline 地址 第二步 创建CodePipeline任务 1....阅读全文

Golang1.7.3使用标准库的AES加密解密不实用扩展协议

package main import ( "crypto/aes" "crypto/cipher" "fmt" ) type tobytes struct { cip cipher.Block pdgtext []byte } func main() { cip, _ := aes.NewCipher([]byte("1234567891234567")) enc := &tobytes{cip: cip, pdgtext: make([]byte, cip.BlockSize())} src := enc.Encrypt([]byte("czxichen")) dst := enc.Decrypt(src) fmt.Println(string(dst)) } //使用AES加密文本,加...阅读全文

博文 2016-11-24 13:00:01 fyxichen

golang错误处理优化

一般条件下golang的错误处理模式如下: err := ... if err != nil { //打印或者退出 } 这种模式可以打印出错误,但是很难查找错误的文件或者位置,可以写一个公用的检查错误函数处理,如下: func CheckError(err error) bool { if err != nil { _, file, line, ok := runtime.Caller(1) if ok { emsg := fmt.Sprintf("file:%s, line:%d, error:%s", file, line, err.Error()) logger.Print(emsg) } else { logger.Print(err) } return true } return ...阅读全文

博文 2020-01-19 23:32:48 hewolf

golang练习:错误

package main import ( "fmt" ) type ErrNegativeSqrt float64 func (t ErrNegativeSqrt) Error() string { return fmt.Sprintf("cannot Sqrt negative number: %v", float64(t)) } func Sqrt(x float64) (float64, error) { if x < 0 { return x, ErrNegativeSqrt(x) } return 0, nil } func main() { fmt.Println(Sqrt(2)) fmt.Println(Sqrt(-2)) ...阅读全文

博文 2019-12-30 02:32:39 该用户太帅没有设置昵称

Golang map

开发十年,就只剩下这套Java开发体系了 >>> m1 := map[string]string{ "name":"falcon", "gender":"male", } if name, ok := m1["name"]; ok { //判断一个key是否存在,不存在时ok为false fmt.Println("key name exists ,value: " + name) } else { fmt.Println("key not exists") } delete(m1, "name") //删除一个元素 if name, ok := m1["name"]; ok { //判断一个key是否存在,不存在时ok为false fmt.Println("key name exists ,...阅读全文

博文 2018-09-23 01:33:06 FalconChen

Go unsafe 包的使用

unsafe包 golang是一种静态的强类型的语言,所有的类型都是不能随意转换的,Go语言是不允许两个指针类型进行转换的。go官方是不推荐使用unsafe的操作因为它是不安全的,它绕过了golang的内存安全原则,容易使你的程序出现莫名其妙的问题,不利于程序的扩展与维护。但是在很多地方却是很实用。在一些go底层的包中unsafe包被很频繁的使用。 unsafe 定义 package unsafe //ArbitraryType仅用于文档目的,实际上并不是unsafe包的一部分,它表示任意Go表达式的类型。 type ArbitraryType int //任意类型的指针,类似于C的*void type Pointer *ArbitraryType //确定结构在内存中占用的确切大小 fun...阅读全文

博文 2020-01-20 00:32:40 大二小的宝

sync.Map

不知道图解的是否到位 几个核心要点: 首先,read初始化之后,始终会保持不变,这里指的是Key的纬度,不会加也不会减; 其次,read和dirty中共有的元素的是相同的一个地址; 再次,dirty中存储的是read中不存在的元素,以及read中之前被删除又会恢复的元素; 最后,dirty在miss次数达到一定限制会,会替换read,重新上面的流...阅读全文

博文 2019-12-17 14:32:44 渐行渐远

Golang学习笔记-接口和错误

接口 Go接口定义了方法后,其它类型只要实现了这些方法就是实现了接口。 type Person interface { speak() } type Student struct { } type Worker struct { } func (student Student) speak(){ println("I am student") } func (worker Worker) speak(){ println("I am worker") } func main() { var person Person person=Worker{} person.speak()//I am worker person=Student{} person.speak()//I am studen...阅读全文

博文 2019-09-27 23:32:44 aside section ._1OhGeD

go map 学习

什么是map map 是在go 中将值(value) 与 键(key) 关联的内置类型,通过相应的键可以获取到值定义类型为 map[key]value 一、 创建map ``` package mainimport "fmt"func maptest() {// 1、声明方式1 mapmap2 :=map[int] string{1:"hello",2:"world"}fmt.Println(map2) // 输出map2 :=map[int] string{1:"hello",2:"world"}fmt.Println(map2) //2、声明方式2 声明一个空map map2 :=map[int] string{} fmt.Println(map2) // 输出 map[] // 3、 ...阅读全文

博文 2020-01-07 23:33:14 水滴石川1