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

ubuntu下最新版golang安装教程

相信打算安装golang的同学们早已看了很多安装教程了,网上的主流方法有两种,一种是 sudo apt-get install golang-go 简单暴力,但是由于现在很多golang的库已经要求 >1.1 ,而 apt-get 安装的是 1.02 ,也建议大家安装最新版的golang,因此推荐手动安装,教程本身没有问题,但是由于某些特殊原因,可能导致安装失败甚至卡在莫名奇妙的地方。在卡了一个中午后,我还是写下这篇文章总结下要注意的地方。 以ubuntu wiki的 安装教程 为例: 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get insta...阅读全文

博文 2014-10-06 07:32:32 stonxer

【golang】切片添加和删除一个元素

前言 在做leetcode熟悉语法的时候,需要对一个切片进行操作。删除操作还好,go圣经有提到,但是增加元素就让我抓了个狂。最后在同事帮助下找到了合适的语法。 正文 -删除元素 l := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} newL := append(l[0:5], l[6:]...) -增加元素 l := []int{0, 1, 2, 3, 4, 6, 7, 8, 9} newL := append(l[0:5], append([]int{5}, l[5:]...)......阅读全文

博文 2019-10-15 20:33:44 aside section ._1OhGeD

完全卸载go语言编译器

在mac中完全卸载golang编译器如果你是通过安装包的形式 安装的go语言编译器,那么更新的方式也会非常简单,那就是直接下载新的golang安装包。在安装新的时候,会自动删除掉旧的编译器。手动删除查看路径在哪里:1> which goroot 权限下删除1> rm -rf /usr/local/go删除1> rm -rf /etc/paths.d/go将环境变量,有关 go 的删了即可1> vim ~/.bash_profile本文链接: https://dreamerjonson.com/2018/12/13/uninstall-go-mac/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处...阅读全文

博文 2018-12-14 23:35:30 jonson_jackson

golang go mod 替换指定版本

之前在项目中遇到过etcd的版本不一致, 导致无法编译. 最终是因为版本不一致的问题. https://segmentfault.com/q/1010000021762281 go mod替换版本 先删除vendor: rm -rf vendor 或手动删除 1.再替版本: go mod edit -require=google.golang.org/grpc@v1.26.0 1.下载指定版本v1.26.0: go get -u -x google.golang.org/grpc@v1.26.0 1.然后再go mod vendo...阅读全文

博文 2020-02-19 15:32:44 百里江山

阿里云云大使经验分享:老司机9招带你玩转云大使推广

阿里云是国内云服务器市场的龙头,性价比高,速度快又安全,是站长建站首选的云服务器之一。福利吧使用的也是阿里云服务器,是折腾了很多次网站搬家后,才选择了阿里云。身边好几个站长最后都殊途同归,用了阿里云,可见阿里云服务器性能确实好。其实在阿里云没有推广返利的时代,我就已经向身边的站长朋友,推荐阿里云了。自从阿里云推出了云大使返利策略后,就更加积极的推广阿里云了,推广的越多我们收益越高。推广阿里云主要方式就是推广阿里云云大使幸运券,新用户用你的阿里云幸运券购买云服务器等产品,你会有返利,而且是现金哦。作为一个老司机,福利吧(www.fuliba.com)也和大家分享一下我的阿里云推广经验,教大家如何免费推广云大使。 1、站长利用自己的网站推广 站长可以利用你自己的网站进行推广,你的...阅读全文

go语言chan 和 routine活用

这里,我们以游戏中的一个情况为例。比如魔兽世界里的40人团队副本BOSS战,很多玩家同时攻击BOSS,BOSS的血量会进行频繁修改,我们要记录对BOSS的致命一击。常规 对BOSS血量的操作经行加锁,然后修改,每次攻击甚至还会判断怪物是否处于死亡状态以判断客户端是否能施放某个技能,但这样会让一个锁控制40个玩家的攻击操作,会导致攻击,技能等释放的不流畅。所以魔兽世界应该不是采用这种加锁的方式。为什么我这样说,因为做为了一个wower,我们经常会发现,实际BOSS,怪物已经死了,但我的寒冰剑还在半路,结果呢,寒冰剑击中了已经成为尸体的怪物并且显示伤害值。 使用GO语言来实现这样的功能: /** * Created by Administrator on 13-12-20. */ package...阅读全文

博文 2014-10-04 19:25:56 eclipser1987

BookStack v2.0 发布,功能类似 GitBook 和看云的在线文档管理系统

程序介绍 BookStack,分享知识,共享智慧!知识,因分享,传承久远! BookStack 是基于 Mindoc、使用Go语言的Beego框架开发的功能类似GitBook和看云的在线文档管理系统,实现了文档采集、导入、电子书生成以及版本控制等强大的文档功能,并推出了配套的开源微信小程序 BookChat。 升级日志 BookStack 配套微信小程序 BookChat 接口实现,累计 20+ 个API接口 修复删除项目时误删默认封面的bug HTML内容处理,以兼容微信小程序rich-text组件对HTML内容的渲染 增加开源书籍和文档收录提交入口,以及收录管理 内容采集增强和优化 书籍在发布的时候,自动把非站内图片自动采集下来 书籍页增加小程序码,提供小程序阅读入口,打通PC端与移动端...阅读全文

博文 2019-08-13 18:04:19 TruthHun

BookStack V1.2 发布,增加书籍分类和用户主页等功能

BookStack,分享知识,共享智慧!知识,因分享,传承久远! BookStack是基于[Mindoc](https://gitee.com/longfei6671/godoc)开发的,为运营而生,可用于文档项目管理,也可用于开源书籍的整理并提供用户阅读,支持批量创建文档、markdown项目一键导入以及文章采集等强大便捷的功能。 ![首页1.png](http://static.bookstack.cn/projects/help/15234b6d9c2c2a4d.png "首页1.png") ## 升级日志 1\. 增加书籍分类 ![分类1.png](http://static.bookstack.cn/projects/help/15234b715f85...阅读全文

Golang实现的红黑树

红黑树是一种基于二叉查找树的数据结构,它具有如下性质: (1) 二叉查找树的性质它都有 (2) 每个节点都有一个颜色属性,每个节点或是红的或是黑的 (3) 根节点必须是黑的 (4) 每个叶子节点(nil节点)为黑 (5) 如果一个节点为红的,那么它的两个孩子都是黑的 (6) 每个节点到它子孙叶子节点的路径上的黑色节点个数是相同的 相比二叉查找树,红黑树在添加或删除元素的同时还需要调整树的深度,所以需要用到对树结构的一些旋转操作,下面的实例代码给的非常详尽了,可以看看LeftRotate()和RightRotate()函数式如何实现旋转的。如果有人发现了BUG请在留言中发表~ 这个代码是在之前的"Golang以OO的方式实现二叉查找树"里的代码加工实现的,因为本人技术不到位。。。出了好几次BU...阅读全文

博文 2015-06-17 20:03:52 u011774512

悲催啦,居然喜欢上Golang

这2天试了试Google的Golang,很有感触,太像C啦,太好用啦~~~~~~~~~~ 居然一下子就喜欢上了,悲催的是,竟然不允许在生产环境上使用(为了确保系统的稳定性),只能拿来游戏游戏一番。爱又得不到,痛苦,更痛苦的是“爱人”天天在眼前晃来晃去的,扰人心神~~~~~~~~~ 就用此博客来做个学习笔记吧~~~~~~~~~~~~~ 防止Go官方网站被X:173.194.79.141 golang.org,你懂的...阅读全文

博文 2014-10-19 09:00:02 dandan.fs

如何离线完成go get——安装Apache Thrift有感

今天公司事情不多,我手上的项目还需要等其他同事才能继续,有一段时间比较闲。之前有3个月不在公司回学校了,我们部门用了一个新的开发工具——Apache Thrift,就趁这个时间了解一下。 准备把Thrift安装到阿里云上面。这个东西大概了解了一下,是Facebook开源的一套远程调用的框架,比目前流行的基于REST传输JSON性能好,更优于基于SOAP的XML。关键是它支持多种语言,当然包括我们Team使用的Golang。 从官网下载压缩包安装有问题,没有官网上面描述的bootstrap.sh文件,还会会报错误。 libtool: link: ar cru .libs/libtestgencpp.a .libs/ThriftTest_constants.o .libs/ThriftTest_...阅读全文

博文 2017-02-09 12:19:51 Bryce

Golang文件及文件夹

文件夹及文件相关使用方法 // 判断文件、文件夹是否存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func Mkdir() { dir := "log" // 创建文件夹 exist, err := PathExists(dir) if err != nil { fmt.Println(err.Error()) } else { if exist { fmt.Println(dir + "文件夹已存在...阅读全文

博文 2020-03-28 15:32:46 是个懒人

在 Cloud 9 中搭建和运行 Go

简介 自从使用了Chromebook,我脑中一直充斥着在云端开发的念头。在我使用过的位数不多的在线开发环境中,唯有 Cloud 9令我比较满意。实际上,Cloud 9还不支持Go的开发,因此本文我将教大家如何让Go在Cloud 9上运行。 创建你的工作区 第一步,创建一个workspace,根据个人喜好命名。 工作区创建完成后,点击开始编辑按钮,你讲看到一个空白的工作区和一个README.md文件(删了也无所谓)。 在工作区的底端,你可以看见控制台,也就是接下来我们要进行操作的地方。如果你希望使用一个更纯粹的控制台,你可以在下面位置启动它: View > Terminals > New Terminal C9最牛逼的地方在于它的虚拟环境,如果你熟悉linux下的命令行,那么上手将轻而易举。既...阅读全文

博文 2014-11-13 12:00:00 zajin

go语言操作mysql数据库问题

hi 我用github.com/Go-SQL-Driver/Mysql操作mysql 例子参照go web 编程教程 增改删按顺序操作没问题,但是只修改就报错,求助大神是什么原因造成的? 报错信息: .\test.go:47: undefined: stmt .\test.go:48: undefined: res .\test.go:48: undefined: stmt .\test.go:49: undefined: res //代码如下: package main import ( "database/sql" "fmt" _ ...阅读全文

Golang使用Elasticsearch

创建es.go文件 根据elasticsearch版本拉取对应的go包:github.com/elastic/go-elasticsearch API文档:https://pkg.go.dev/github.com/elastic/go-elasticsearch/v6@v6.8.5/esapi?tab=doc package es import ( "bytes" "context" "encoding/json" "fmt" "github.com/elastic/go-elasticsearch/v6" "log" ) func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, ...阅读全文

博文 2020-05-26 09:32:43 是个懒人

在 Cloud 9 中搭建和运行 Go

简介 自从使用了Chromebook,我脑中一直充斥着在云端开发的念头。在我使用过的位数不多的在线开发环境中,唯有 Cloud 9令我比较满意。实际上,Cloud 9还不支持Go的开发,因此本文我将教大家如何让Go在Cloud 9上运行。 创建你的工作区 第一步,创建一个workspace,根据个人喜好命名。 工作区创建完成后,点击开始编辑按钮,你讲看到一个空白的工作区和一个README.md文件(删了也无所谓)。 在工作区的底端,你可以看见控制台,也就是接下来我们要进行操作的地方。如果你希望使用一个更纯粹的控制台,你可以在下面位置启动它: View > Terminals > New Terminal C9最牛逼的地方在于它的虚拟环境,如果你熟悉linux下的命令行,那么上手将轻而易举。既...阅读全文

博文 2014-11-06 18:00:00 cmy00cmy, 5th_days

go lang 读写文件操作

参考备份 写程序离不了文件操作,这里总结下go语言文件操作。 一、建立与打开 建立文件函数: func Create(name string) (file *File, err Error) func NewFile(fd int, name string) *File 具体见官网:http://golang.org/pkg/os/#Create 打开文件函数: func Open(name string) (file *File, err Error) func OpenFile(name string, flag int, perm uint32) (file *File, err Error) 具体见官网:http://golang.org/pkg/os/#Open 二、写文件 写文件...阅读全文

博文 2015-06-17 20:05:17 yatere

klog flag redefined 错误解决

# 引用k8s优秀日志包klog时遇到错误: ```go /var/folders/4c/7cs52qx951l7dzrvkk1yzvf40000gn/T/go-build871962607/b001/exe/main flag redefined: log_dir panic: /var/folders/4c/7cs52qx951l7dzrvkk1yzvf40000gn/T/go-build871962607/b001/exe/main flag redefined: log_dir ``` # 错误提示 log_dir 这个flag被重复定义了 # 错误原因1 引用klog时的时候,重复引用了glog,要替换或者删除glog。清除vendor以及依赖包。 # 错误原因2 使用flag.N...阅读全文

博文 2020-03-09 18:16:25 ttbelieve

“Python太慢了、Golang糟透了":那些关于软件工程的”宗教“辩论

“Python太慢了、Golang糟透了、MongoDB是最好的”:那些关于软件工程的”宗教“辩论 引言:开发者的世界里总是充斥着各种各样的争论,从编程语言、框架甚至到编辑器、Windows/iOS系统,都可以成为争得面红耳赤的“宗教战争”。本文作者针对软件开发行业的辩论进行了深入研究,探讨了这些辩论背后的本质,解释了他认为好的技术辩论应该是怎样的。 “Python的速度不行。” “都9102年了,还有人不用Java虚拟机(Scala、Clojure)构建Web App吗?” “Mong是最好的数据库;SQL很差劲,SQL数据库扩展性不行。任何现代工程师都必须熟悉Mongo。” “Golang糟透了(因为没有泛型);谁用谁白痴。” 在我刚刚成为软件工程师那会,最令我震惊的就是,同行们居然用“...阅读全文

博文 2019-08-14 19:32:48 Python花猫

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

哪种编程语言比较有前途?

哪种编程语言比较有前途?选哪一种程序语言, 看哪一种程序语言比较有前途,主要是看你做什么。主要的现实情况是你不可能把所有语言都用一遍,做一个项目可能选几种语言就够了。 [JavaScript]如果你做前端的话,你javascript一定要懂,type script一定要懂。懂了java script,你还可以做后端的note js。也可以做unity 3d的游戏编程。也可以做react native 手机端的编程。传统网页的编写也离不了这门语言。 [java]如果你做后端的话,语言选择的空间就大很多。首屈一指的就是java。这门语言是当之无愧的,程序员数量最多的语言。使用Java:可以做spring boot的后台的API的编写。也可以做spring mvc的传统的网络程序编写。再老一点的话...阅读全文

选择编程语言,重点是看你想做什么开发,而不是乱学编程语言!

选哪一种程序语言, 看哪一种程序语言比较有前途,主要是看你做什么。主要的现实情况是你不可能把所有语言都用一遍,做一个项目可能选几种语言就够了。 JavaScript如果你做前端的话,你javascript一定要懂,type script一定要懂。懂了java script,你还可以做后端的note js。也可以做unity 3d的游戏编程。也可以做react native 手机端的编程。传统网页的编写也离不了这门语言。java如果你做后端的话,语言选择的空间就大很多。首屈一指的就是java。这门语言是当之无愧的,程序员数量最多的语言。使用Java:可以做spring boot的后台的API的编写。也可以做spring mvc的传统的网络程序编写。再老一点的话,还可以写桌面程序。等等。 c++...阅读全文

博文 2019-07-25 02:32:41 学习编程__

golang xorm postgresql数据库操作

1.连接数据库func Connect()(* xorm.Engine) {str := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbName)engine,err := xorm.NewEngine("postgres",str)if err != nil {log.Fatal(err)return nil }err = engine.Ping()if err != nil {log.Fatal(err)return nil }engine.Logger().SetLevel(core.LOG_DEBUG)f,err :=...阅读全文

博文 2019-08-13 18:32:46 dullswords

自己动手用golang实现双向链表

双向链表主要有链表跟节点2个结构体type Dnode struct { data interface{} prev *Dnode next *Dnode } type DList struct { head *Dnode tail *Dnode size int }特点:1、除头部、尾部2个节点外,其他任意节点都通过prev / next 分别指向前置后置节点2、头部节点前置节点为空,同理尾部节点后置节点为空主要实现的API如下:1、查询查询链表长度查询任意节点2、添加从开头插入节点从尾部插入节点从任意位置插入节点3、删除删除任意节点4、其他打印链表初始化链表具体实现如下:package main import "fmt" type Dnode struct { data interfac...阅读全文

博文 2019-12-16 02:33:41 筑梦攻城狮

sync.Map

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

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

kubernetes垃圾回收器GarbageCollector Controller源码分析(二)

kubernetes版本:1.13.2 接上一节:kubernetes垃圾回收器GarbageCollector Controller源码分析(一) 主要步骤 GarbageCollector Controller源码主要分为以下几部分: monitors作为生产者将变化的资源放入graphChanges队列;同时restMapper定期检测集群内资源类型,刷新monitors runProcessGraphChanges从graphChanges队列中取出变化的item,根据情况放入attemptToDelete队列; runProcessGraphChanges从graphChanges队列中取出变化的item,根据情况放入attemptToOrphan队列; runAttemptToD...阅读全文

博文 2019-10-12 15:02:42 小碗汤

Golang学习笔记-map

map是一些键值对的集合,默认值为nil,使用内置函数make创建map: var map_variable map[key_data_type]value_data_type map_variable := make(map[key_data_type]value_data_type) func main() { var numberMap map[string] int numberMap=make(map[string]int) println(len(numberMap)) } map可以使用大括号来初始化: var numberMap =map[string] int{"one":1,"two":2,"three":3} 判断元素是否存在: func main() { var nu...阅读全文

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

go map 学习

map 声明的几种方式var a map [sting] int // string 代表key 值的类型 int 代表 value 值的类型var b map [int] string // int key 值的类型 ,string 代表value 值的类型var c map [string] string // string 代表 值的类型 string 代表value 值的类型map 类型的变量需要先声明才能使用,需要使用make 分配map内存 示列package main import "fmt" func map1() { var a map [string] int fmt.Println(a) // a["s1"] = 123 // fmt.Println(a) //pani...阅读全文

博文 2020-03-25 04:33:12 水滴石川1

自己动手用golang实现单向链表

单向链表特点:1、Head 节点 上一个节点为空2、Tail 节点下一个节点为空3、除Tail节点外,每个节点连接到下一个节点package main import ( "fmt" ) type LinkNode struct { Data interface{} Next *LinkNode } type SingleLink struct { head *LinkNode tail *LinkNode size int } // 初始化链表 func InitSingleLink()(*SingleLink){ return &SingleLink{ head:nil, tail:nil, size:0, } } // 获取头部节点 func (sl *SingleLink)GetHea...阅读全文

博文 2019-12-28 15:33:41 筑梦攻城狮

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

kubernetes垃圾回收器GarbageCollector Controller源码分析(二)

kubernetes版本:1.13.2 接上一节:kubernetes垃圾回收器GarbageCollector Controller源码分析(一) 主要步骤 GarbageCollector Controller源码主要分为以下几部分: monitors作为生产者将变化的资源放入graphChanges队列;同时restMapper定期检测集群内资源类型,刷新monitors runProcessGraphChanges从graphChanges队列中取出变化的item,根据情况放入attemptToDelete队列; runProcessGraphChanges从graphChanges队列中取出变化的item,根据情况放入attemptToOrphan队列; runAttemptToD...阅读全文

博文 2019-10-13 23:04:28 Liabio

leetcode_1338

Golang: 思路:贪心,首先,我们需要知道每个数字在数组中出现的数目,然后将这些数目做个排序,每次都删去出现最多次数的数目,直到这些删除的数目之和超过了数组长度的一半。 代码如下: func minSetSize(arr []int) int { mp:=make(map[int]int) for _,v:=range arr{ mp[v]++ } var val []int for _,v:=range mp{ val=append(val,v) } sort.Ints(val) temp:=0 for i:=len(val)-1;i>=0;i--{ temp+=val[i] if temp>=len(arr)/2{ return len(val)-i } } return 0 ...阅读全文

博文 2020-03-14 21:32:47 淳属虚构