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

GO错误

SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。 如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令...阅读全文

静态 Web 服务器 Ran

Ran 是用 Go 语言开发的一个简单的静态 Web 服务器。 主要特性: * 目录列表 * 自动对内容进行 gzip 压缩 * 摘要认证 * 访问日志 * 自定义 404 错误页面 依赖: * [github.com/abbot/go-http-auth](https://github.com/abbot/go-http-auth) * [github.com/oxtoacart/bpool](https://github.com/oxtoacart/bpool) * [github.com/m3ng9i/go-utils/http](https://github.com/m3ng9i/go-utils) * [github.com/m3ng9i/go-utils/l...阅读全文

开源项目 2015-10-02 16:00:00 m3ng9i

我们采访了阿里云云数据库SQL Server的产品经理,他说了解这四个问题就可以了

摘要: 2017年杭州云栖大会,阿里云宣布云数据库支持SQL Server 2016,阿里云云数据库家族又新添一名成员,进一步丰富了阿里云云数据库产品家族,在大会期间,我们采访了阿里云云数据库产品经理胜通,听他为我们解析云数据库SQL Server 2016版。 为什么推出SQL Server 2012/2016 Web基础版SQL Server版本更新近些年非常快,阿里云数据库作为云服务商,针对新版本提供支持服务于云上客户是推出2016基础版的主要原因,Web版高性价比优势是它作为云数据库SQL Server首选版本,所以我们优先推出SQL Server 2012/2016 Web基础版。SQL Server 2012/2016 Web基础版适合哪类用户使用?有什么优点? SQ...阅读全文

[翻译]编译器(8)-抽象语法树

文在此。 ————翻译分隔线———— 编译器(8)-抽象语法树 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 第七部分:扫描 在构建解析器之前,首先应当谈谈如何处理目标数据。 需要用某种抽象数据类型来保存所有需要解析的数据。树形数据结构很好的满足了我们的需求。这个树描述了编程语言的语法结构,它被很恰当的叫做抽象语法树(AST)。 AST 树形数据结构总是从一个根开始,我们的也是一样。通常,在一个成熟的编译器中,你通常会有一个代表包或程序的对象。在我们的例子中,我们只有一个文件,因此我们将有一个叫做 File 的对象。 这个对象的其他部分可以在我们的语法蓝图中找到。再次提醒,回顾我们创建语...阅读全文

博文 2017-01-07 11:00:12 mikespook

本地跨域请求服务器调试

在网页开发的过程中,时常需要进行跨域请求,去测试服务器请求数据。 跨域限制是浏览器行为,不是服务器行为 要理解和解决跨域问题,需要深刻理解-跨域限制是浏览器行为,不是服务器行为。这也是为什么跨域通过postman这类工具来直接请求服务器接口数据,而在网页中通过js就不可以的原因,因为js运行在浏览器,当js运行的环境url和请求的接口数据的url不同域,并且服务器没有允许跨域请求时,浏览器就会认为这个请求是不安全的,就会限制请求。 理解了跨域限制是浏览器行为,不是服务器行为的原理后,就很容易解决跨域问题了。有两种方法: 1、 服务器端后台代码进行特殊设置,允许客户端进行跨域请求 java private void enableCORS(Request request, Response re...阅读全文

现代垃圾收集策略 —— Go 的 GC 策略

![ ](https://raw.githubusercontent.com/studygolang/gctt-images2/master/modern-garbage-collection/gc.jpeg) 在 [Hacker News](https://news.ycombinator.com/item?id=13218550) 和 [Reddit](https://www.reddit.com/r/golang/comments/5j7phw/modern_garbage_collection/) 你可以找到相关讨论 我最近看过很多文章,它们以令我困扰的方式推广 Go 语言最新的垃圾收集器。其中一些文章来自 Go 官方项目本身。他们声称这意味着 GC 技术已经有根本性的突破。 [这是...阅读全文

博文 2019-09-09 22:34:49 TomatoAres

athens

墙太高风太大google的包不让下 最近在用 grpc 的时候从 google.golang.org 上死活下不下来。只能找找骚操作了 代理 通过设置 GOPROXY 通过代理来下载 常用公共代理有 https://gocenter.io 和 https://proxy.golang.org # 本次 go get 使用代理 $ GOPROXY=https://goproxy.io go get google.golang.org/grpc # 设置永久代理 $ export GOPROXY=https://goproxy.io athens 使用 https://goproxy.io 这样的公共 go module 代理可以解决墙外依赖的下载问题。但是如果我们依赖的包在私有仓库(比如自建的...阅读全文

博文 2019-07-01 23:32:42 阿duang_638a

阿里云如何打破Oracle迁移上云的壁垒

摘要: 2018第九届中国数据库技术大会,阿里云数据库产品专家萧少聪带来以阿里云如何打破Oracle迁移上云的壁垒为题的演讲。Oracle是指“数据库管理系统”,面对Oracle迁移上云的壁垒,阿里云如何能够打破它呢?本文提出了Oracle 到云数据库PPAS迁移的方案,这种迁移方案为什么比Oracle到 MySQL系列的迁移容易推动呢?答案即将揭晓。 2018第九届中国数据库技术大会,阿里云数据库产品专家萧少聪带来以阿里云如何打破Oracle迁移上云的壁垒为题的演讲。Oracle是指“数据库管理系统”,面对Oracle迁移上云的壁垒,阿里云如何能够打破它呢?本文提出了Oracle 到云数据库PPAS迁移的方案,这种迁移方案为什么比Oracle到 MySQL系列的迁移容易推动呢?答案即...阅读全文

Go 中值接收器构造器的探讨

在 Go 中,当涉及到面向对象编程,会有许多的前期工作需要做,以至于许多刚从其它语言迁移到 Go 的程序员会将那些语言中的一些概念带到 Go 中。对象构造器就是这么一个存在于许多其它语言中而无法在 Go 中找到的概念。 ## 为什么需要构造器 在 Go 中,有些对象需要初始化,比如 channel 和 slice 这两个很容易想到的例子。这个初始化的过程通过调用 `make` 函数来执行。 > make 这个内置函数为且仅为 slice, map 以及 chan 类型的对象分配以及初始化。和 new 一样,函数的第一个参数是一个类型而不是值。与 new 不同的是,make 函数返回的是与参数一样的类型而不是参数类型的指针。 当然我们还需要默认参数,所以在 Go 中分配本身并不是我们需要构造函...阅读全文

博文 2018-04-12 21:26:35 killernova

利用 GoLand 和 Mozilla rr 项目来调试

调试器。传统上,它们被用来发现复杂的 bug 并解释它们是如何发生的。但是,如果您无法解释为什么在步骤之间会发生一些更改,该怎么办呢?这就是典型调试器无法帮助您的地方,因为它们通常只会让您继续执行。 正如我们在前一篇文章中所看到的,虽然可以使用[核心转储](https://blog.gopheracademy.com/advent-2018/postmortem-debugging-delve/),但它们并不总是告诉您应用程序中发生的事情的全部情况。 输入可逆的调试器。这些调试器不仅允许您在执行过程中逐步前进,还允许您返回并有效地撤消步骤之间的所有操作。 Go 调试器 [Delve](https://github.com/go-delve/delve) 通过使用 [Mozilla 的 rr ...阅读全文

[提问]golang写的读取服务器端返回值无法显示,但telnet去服务器端能正常返回数据

如题,是哪里有问题吗? 代码: package main import ( "bufio" "fmt" "net" ) func main() { conn, err := net.Dial("tcp4", "192.168.55.4:9830") if err != nil { panic(err) } fmt.Fprintf(conn, "SHAKEHAND:::5::;\r\n") data, err := bufio.NewReader(conn).ReadString('\n') if err != nil { panic(err) } fmt.Printf("%#v\n", data) } ...阅读全文

goroutine请求http服务器时很快就阻塞,请问什么原因,或者如何定位问题?

###goroutine请求http服务器时很快就阻塞,请问什么原因,或者如何定位问题? 在做一个设备管理的功能,通过访问http服务器的REST ful接口确定设备是否在线,30s访问1000个设备,目前写的方案大致如下 其中看到goroutine的数量并不是很高,但很快程序就不动了,cpu,内存也并没有占用过高 ```golang package main import ( "fmt" "net/http" "runtime" "time" ) func a() { b() //..... } var bb = 0 func b() { fmt.Printf("b:%d\n", bb) bb++ resp, ...阅读全文

理解 Go 语言中的指针和内存分配

在 Go 语言官方文档中,你可以找到很多关于指针和内存分配的重要信息。以下是该文档的链接:[Go 语言官方文档之指针](http://golang.org/doc/faq#Pointers) 首先我们需要理解的是,所有在 Go 语言中的值都有其不同变量来表示。不同类型表示的变量决定了我们如何使用它来操纵内存。这篇文章阐述了更多关于 Go 语言中的变量类型:[理解 Go 中的类型](https://studygolang.com/articles/13976) 在 Go 中,我们可以创建一个变量作为 “值” 本身,也可以创建一个变量作为某个 “值” 的地址。当变量的 “值” 是地址时,我们就称该变量为指针。 在下图中,有一个名为 myVariable 的变量。myVariable 的“值”是指...阅读全文

博文 2018-12-31 23:05:42 CNbluer

Web工作方式

文地址:https://golangcaff.com/docs/build-web-application-with-golang/031-web-working-mode/245 我们平时浏览网页的时候, 会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后,到底隐藏了些什么呢? 对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入 URL 的时候,首先浏览器会去请求 DNS 服务器,通过 DNS 获取相应的域名对应的 IP,然后通过 IP 地址找到 IP 对应的服务器后,要求建立 TCP 连接,等浏览器发送完 HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回 HTTP R...阅读全文

博文 2019-01-28 11:34:52 raincoffee

Go Web编程--SecureCookie实现客户端Session管理

在Web应用开发中Session是在用户和服务器之间进行交换的非持久化交互信息。当用户登录时,可以在用户和服务器之间生成Session,然后来回交换数据,并在用户登出时销毁Session。gorilla/sessions软件包提供了易于使用的Go语言Session实现。该软件包提供了两种不同的实现。第一个是文件系统存储,它将每个会话存储在服务器的文件系统中。另一个是Cookie存储,它使用我们上篇文章讲的SecureCookie在客户端上存储会话。同时还提供了用户自定义Session存储实现的选项,我们可以根据应用的需求自己实现Session存储。因为我们的教程是学会使用为目的就不大费周章的去实现MySQL或者Redis版本的Session存储了,我们直接使用软件包提供的Cookie实现来完...阅读全文

博文 2020-03-12 11:34:30 kevinyan

Golang 数据结构:图

文链接:blog本文简要介绍图的 2 种实现及其 BFS 遍历。参考:golang-data-structure-graph 前言 新坑 最近在校事情不多,趁着还记得就开了个新坑 algorithms,把常用数据结构和算法总结了一下。每个算法都有 README.md 介绍算法的运行流程、GIF 演示、复杂度分析及适用场景;每种数据结构会介绍基本概念、操作和应用场景。 参考书籍 《数据结构与算法分析:C 语言描述》《算法与数据结构题目最优解》 图 图这种数据结构是网状结构的抽象,现实生活中有很多例子,比如航班路线网络、社交网络等。关于图的节点、边、权值、有向无向和强弱连通性等基础概念可参考第一本书第八章。 对于上方的无向图,有两种常见的表示方法: 邻接矩阵 对于节点 u 指向节点 v 的边 (...阅读全文

golang的channel剖析

概述 为了并发的goroutines之间的通讯,golang使用了管道channel。你可以通过一个goroutines向channel发送数据,然后从另一个goroutine接收它 通常我们会使用make来创建channel ----- make(chan valType , [size])。 写入 channel c<- 读取channel <-c 分类 一 无缓冲 make创建时忽略第二个参数即可创建无缓冲channel实例如下: // csdnTest.go package main import ( "fmt" "time" ) func main() { messages := make(chan string) go func() { messages <- "hello" }...阅读全文

博文 2016-11-22 04:00:06 wslzwps00321

gof23行为类模式(golang版)

命令模式 image 命令模式是一个高内聚的模式,其定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排除或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式包含如下角色: Command: 抽象命令类 需要执行的所有命令得出在这里声明。 ConcreteCommand: 具体命令类 负责实现在Command角色中定义的接口 Invoker: 调用者 开始执行命令的角色,它会调用在Command角色中定义的接口。 Receiver: 接收者 该角色就是干活的角色,命令传递到这里是应该被执行的 命令模式的优点 类间解耦 调用者角色与接收者角色之间没有任何依赖关系,调用者实现功能时只须调用Command抽象类的execute方法就可以,不需要了解到底是哪个接收者执...阅读全文

博文 2018-12-08 23:35:40 五月花号区块链联盟

我的Go语言学习之旅八:创建一个简单的WEB服务器

因为一直在做WEB程序,所以更关注WEB界的发展,这里就用GO做了一个简单的WEB服务器,直接看例子吧 package main import ( "fmt" "net/http" ) // Default Request Handler func defaultHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "

Hello World %s!

", r.URL.Path[1:]) } func getHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "

Hello World Every Guys!

"...阅读全文

博文 2016-02-02 23:00:00 w_yunlong

程序员修仙之路--突破内存限制的高性能排序

菜菜的涨工资申请还在待审批中.... 作为一个技术人员,技术的问题还是要解决。经过线上日志的分析,日志采用小时机制,一个小时一个日志文件,同一个小时的日志文件有多个,也就是说同一时间内的日志有可能分散在多个日志文件中,这也是Y总要合并的主要原因。每个日志文件大约有500M,大约有100个。此时,如果你阅读到此文章,该怎么做呢?不如先静心想2分钟!! 问题分析 要想实现Y总的需求其实还是有几个难点的: 如何能把所有的日志文件按照时间排序 日志文件的总大小为500M*100 ,大约50G,所以全部加载到内存是不可能的 程序执行过程中,要频繁排序并查找最小元素。 那我们该怎么做呢?其中一个解决方案就是它:堆 解决方案 堆定义 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个...阅读全文

关于Go语言在服务端做Restful接口和socket通信

请到我的个人博客看golang rest相关文章 http://xiaorui.cc关于Go语言在服务端做Restful接口和socket通信已经转到: http://xiaorui.cc/2014/10/25/%E5%85%B3%E4%BA%8Ego%E8%AF%AD%E8%A8%80%E5%9C%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%81%9Arestful%E6%8E%A5%E5%8F%A3%E5%92%8Csocket%E9%80%9A%E4%BF%A1/下图即是REST的架构图:当REST架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可...阅读全文

博文 2017-02-09 16:42:01 rfyiamcool

AST解析基础: 如何写一个简单的html语法分析库

前言 虚拟语法树(Abstract Syntax Tree, AST)是解释器/编译器进行语法分析的基础, 也是众多前端编译工具的基础工具, 比如webpack, postcss, less等. 对于ECMAScript, 由于前端轮子众多, 人力过于充足, 早已经被人们玩腻了. 光是语法分析器就有uglify, acorn, bablyon, typescript, esprima等等若干种. 并且也有了AST的社区标准: ESTree. 这篇文章主要介绍如何去写一个AST解析器, 但是并不是通过分析JavaScript, 而是通过分析html5的语法树来介绍, 使用html5的原因有两点: 一个是其语法简单, 归纳起来只有两种: Text和Tag, 其次是因为JavaScript的语法分...阅读全文

博文 2017-08-20 16:05:06 一路行歌

Go 编译器 nil 指针检查

## 简介 我在思考编译器是如何保护我们写的代码。无效的内存访问检查是编译器添加到代码中的一种安全检查。我们可能会认为这种“额外的代码”会损耗程序的性能,甚至可能需要数十亿的迭代操作。但是,这些检查可以防止代码对正在运行的系统造成损害。编译器本质上是指出和查找错误,使我们编写的代码在运行时更安全。 基于上述考虑,同时 Go 语言想要达成更快的编译速度,如果硬件可以解决这些问题,那么 Go 语言编译器就会使用硬件来解决问题。其中一种情况是检测无效的内存访问。有时编译器会在代码中添加 nil 指针检查,而有时不会。在这篇博客中,我们将探讨一种情况,即编译器在什么情况下让硬件来检测无效的内存访问,以及在什么情况下会添加 nil 指针检查。 ## 硬件只作检查 当编译器依赖于硬件来检查并指出无效的内...阅读全文

博文 2018-11-27 09:55:43 7Ethan

编译器跨平台实现 和 自然语言翻译

在阅读 编译原理相关书籍时,意识到编译器设计本质上是语言翻译的简化问题; 我们把高级语言书写的代码,通过编译器 + 解释器 的过程 变成计算机可以理解的机器码;就是相当于把一段文字翻译给一个外国人听;当然编译器的翻译工作要比自然翻译的过程简单很多;但是设计思想可以借鉴; 现在选取一个角度,来思考一些问题; 一个由语言L编写的,将语言X程序文件翻译成语言Y程序文件的翻译程序称为编译器,记作CLXY 编译器应该选择什么语言来实现呢?假设没有任何前人的工作,那必须用汇编写一套编译器去编译高级语言,编译器毫无疑问是一项复杂的工作的,用汇编这种低级语言去直接实现它,基本上是一个难到无法发成的工作;这是一个核心问题,汇编实现编译器这种复杂软件难度太大! 先放下上面的问题稍后再说,假设已经历经千辛万苦实现...阅读全文

博文 2020-02-23 18:32:53 旺财不哭

VS Code编辑器配置Go环境

VS Code是微软出品的编辑器, 和Atom, Sublime Text类似, 都可以集成第三方插件, 这里主要介绍VS Code配置方法, 因为VS Code在代码提示上做得更好 首先确定安装了go插件, 并且已经重启生效 编辑go文件的时候, 会提示安装, 这个时候可以确定全部安装, 过段时间我们发现有好几个插件会安装失败, 这个时候就需要我们手动安装 以 Windows 为例, 设置好环境变量GOPATH, 通过git下载工具包安装 md %GOPATH%\src\github.com\golang cd %GOPATH%\src\github.com\golang git clone https://github.com/golang/tools.git tools md %GOP...阅读全文

博文 2017-02-10 14:45:07 yin32167

阿里云倾力扶持技术社区 CDN流量免费放送

摘要: 近日,阿里云CDN服务推出了“站长扶持活动”,为了感谢站长们对阿里云长期以来的支持,将免费流量送给大家。 本次活动主要针对中小站长的需求,旨在帮助中小站长实现站点加速效果,提升用户浏览体验。比如大部分站点面临的由于图片、文件较多带来的访问缓慢,或者因为跨运营商、跨地域带来的区域性无法访问等状况,都可以通过接入CDN来得到解决。 近日,阿里云CDN服务推出了“站长扶持活动”,为了感谢站长们对阿里云长期以来的支持,将免费流量送给大家。 image 本次活动主要针对中小站长的需求,旨在帮助中小站长实现站点加速效果,提升用户浏览体验。比如大部分站点面临的由于图片、文件较多带来的访问缓慢,或者因为跨运营商、跨地域带来的区域性无法访问等状况,都可以通过接入CDN来得到解决。另外...阅读全文

2018-07-30

build-web-application-with-golang1. web工作方式2. DNS工作原理(1)先看hosts(2)在看本地DNS解析器缓存,是否有这个网址映射关系(3)首先会找本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。(4)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)...阅读全文

博文 2018-08-02 12:34:51 温暖之隔

Apsara Clouder云计算专项技能认证:云服务器管理运维,你了解多少?

如何实现1+3+5=100种可能性么?通过学习你可以掌握如何快速地开通一台云服务器,并通过管理控制台方便地进行服务器的管理、服务器配置的变更和升级、数据的备份,并保证其可以正常运转并按业务需求随时进行配置的变更。 认证流程 1购买认证 2学习课程/在线实验 3在线考试 4领取电子证书 课程学习 01 3个理由拥抱云服务器 让你了解什么是云服务器以及使用云服务器的好处,带你开启云服务器之旅。免费试听https://edu.aliyun.com/course/58 02 1分钟快速定制ECS 让你了解如何快速地拥有一台属于自己的云服务器。开始学习https://edu.aliyun.com/course/58 03 3分钟便捷管理ECS 让你了解如何远程登录服...阅读全文

一步一步教你写BT种子嗅探器之二---DHT篇

之前写了原理篇,在原理篇里简单的介绍了一下DHT,但是还不够详细。今天我们就专门详细的讲一下嗅探器的核心-DHT,这里默认原理篇你已经读了。 背景知识 DHT全称 Distributed Hash Table,中文翻译过来就是分布式哈希表。它是一种去中心化的分布式系统,特点主要有自动去中心化,强大的容错能力,支持扩展。另外它规定了自己的架构,包括keyspace和overlay network(覆盖网络)两部分。但是他没有规定具体的算法细节,所以出现了很多不同的实现方式,比如Chord,Pastry,Kademlia等。BitTorrent中的DHT是基于Kademlia的一种变形,它的官方名称叫做 Mainline DHT。 DHT人如其名,把它看成一个整体,从远处看它,它就是一张哈希表,...阅读全文

博文 2017-02-09 08:32:47 shiyanhui

一个逻辑处理器运行多个goroutine,这些goroutine的被调度顺序是怎么样的?

代码如下: ![76540481-8DEB-46C9-B1C1-1FA08EB66C92.png](https://static.studygolang.com/171218/29f84a242b5e74fe36bbed76f71f3f20.png) 显示结果如下: Create Goroutines Waiting To Finish D:2 D:3 D:5 D:7 ... D:43 D:47 Completed D A:2 A:3 A:5 ... A:43 A:47 Completed A B:2 B:3 ... B:43 B:47 Completed B C:2 C:3 ... C:43 C:47 Completed C...阅读全文

centos Liteide 无法输入中文

Liteide 无法输入中文?是的你没有看错,就是没法输入中文,在其他编辑器就没有任何问题。遇到这种问题,想到的是第一个肯定是百度了!然并卵,没有发现有人遇到这个问题,查看官文提交问题好像也没有人看到有人提这个问题,郁闷了很久,为了装这个ide花了很多时间,到最后不能输入中文。​继续查原因在无意中搜索到”Qt 无法输入中文“,突然就想到,Liteide不就是依赖Qt编译的么?是不是qt不能输入中文,Liteide也不能输入中文?​打开Qt编辑器,我敲、敲、敲。果然,没法输入中文照着下面的解决方法https://blog.csdn.net/Dreamy_LIN/article/details/79589273Qt缺少中文动态库,那么给Qt加一个中文动态库,ok果然,重新打开Qt,惊奇的发现,可...阅读全文

博文 2019-03-31 23:04:21 yoli

[Golang] VS Code 编辑器代码提示不生效

最近有段时间没写 Go,突然捡起来重新写一下。然后发现我的 VS Code 编辑器出不来代码自动提示了。同时编辑器会弹出提示说 gocode 有更新的版本支持,需要进行更新。 执行对应的更新命令 go get -u -v github.com/mdempsky/gocode 但却因为大家都懂的原因,出错了 golang.org/x/tools (download) # cd /xxx/xxx/go/src/golang.org/x/tools; git pull --ff-only fatal: unable to access 'https://go.googlesource.com/tools/': Failed to connect to go.googlesource.com por...阅读全文

博文 2019-04-23 18:34:42 iSakura

Go methods for types

You can define methods on struct types. The method receiver appears in its own argument list between the func keyword and the method name. The code snipers here just run as it looks like, so no results given. package main import ( "fmt" "math" ) type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { //一个Vertex指针类型的接收器,也是方法调用者 return m...阅读全文

博文 2015-12-21 20:00:00 resouer

LiteIDE使用

LiteIDE是一款开源,跨平台的轻量级Go语言集成开发环境。操作简单,提示迅速!当然不足之处也有很多,不过除了golad之外,个人觉得比vscode,eclipse等用的更舒心一点(ps:指的是编写golang,每个人的感受不一样,勿喷)目前本人使用的LiteIDE版本号是:x36.1其中让我感受不是很好的两个点是:1.没有自动go lint检测,需要手动。2.更改键盘映射不能捕获按键的内容,需要自己粘贴复制比方说Ctrl+C之类的上去,如果不能接受这两点需要考虑考虑。当然也有可能是我玩的不够透彻,如果有人知道,请评论告知,感激不敬:)。那么,接下来就让我们来学习一下LiteIDE这款国人开发的编辑器的简单用法:当我们使用一款IDE的时候,首先当然是配置一下环境,其次是快捷键,界面布局之类...阅读全文

博文 2019-10-25 15:32:49 aside section._1OhGeD

[译] 使用 Go 和 ReactJS 构建聊天系统 (一)

本节完整代码:GitHub 我们将通过设置两个项目来开始这个课程。一旦我们完成了枯燥的设置,就可以开始添加新功能并构建我们的应用程序,将看到一些积极的结果! 目标 在这部分课程结束后,你将掌握: 在 backend/ 目录里创建基本的 Go 应用 在 frontend/ 目录里创建基本的 ReactJS 应用 通过实现这两个部分,你将能够在接下来的几节课程中为聊天系统添加一些功能。 准备工作 为了完成本系列教程,我们先要做以下的准备工作。 需要安装 npm 需要安装 npx。这个可以输入 npm install -g npx 安装。 Go 语言版本需要满足 1.11+。 需要一个代码编辑器来开发这个项目,例如 VS 设置 Go 后端项目 如果你熟悉 Go 的话,这一步非常简单,我们首先要在项...阅读全文

博文 2019-08-02 14:34:31 咔叽咔叽

Go语言开发工具 LiteIDE X27 发布

经过一个月的开发,LiteIDE X27正式发布。 新版本重新设计了编译和编辑工具栏。支持编译项目锁定,支持Go语言鼠标下代码提示和鼠标导航功能,编辑器支持换行/空白显示等设置,修复了谷歌拼音输入法光标显示等BUG。 ### 2015.2.4 Ver X27 * LiteIDE * create independent project gotools and replace liteide_stub * move build toolbar to the main windowww.suanxian.com * move editor tab to editor widget * fix multi window keyshort invalid * fix treeview scroll ...阅读全文

从iOS到Golang - 前言

一直很矫情的认为每个文集都需要一个序...就像起小名儿一样——老人说,有了小名,娃就好养活了。有了序,文集就不会轻易弃坑了... 嗯嗯,那么随便唠唠吧~ 关于知识体系 很久没在简书上写文章了,是因为自己搭建了一套wiki,日常学习笔记、感想、项目计划、总结等文档都沉淀到wiki上了。 初识wiki 是在我团发现wiki这套系统很好用的,但是由于厂里人太多(劳动密集型嘛...),加上广大程序员哥哥们出于各种需求写了大量爬虫在wiki中游弋,使得我厂wiki系统不堪重负,经常崩溃,导致大家对wiki深恶痛绝... wiki和markdown 和小伙伴讨论过,在哪里记笔记和知识比较好。小伙伴们普遍表示更喜欢用markdown而非慢的要死的wiki。 其实,markdown和wiki是两个东东。ma...阅读全文

优雅地使用命令行:Tmux 终端复用

什么是 Tmux 你是否曾经开过一大堆的 Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就是做这件事情的! 你可以随时退出或者进入任何一个 Session。每个 Session 有若干个 Window,每个 Window 又可以分成多个窗格(Pane)。 极大地满足 Terminal 用户的需求。 此外即使 Terminal 意外关闭也没关系,因为 Session 完全保存在 Tmux Server 中。 再次打开 Terminal 时只需$ tmux attach便可回到你的工作区,就像从未退出过一样。 同时 Tmux 还支持“远程协助”,原本在服务器中,大家ssh上去之后都是互不干扰的操作,如果进入了相同的 Tmux Session,所有人看到的画面都是一样的...阅读全文

golang container包List和Ring

container/list  这个包包含了两个公开的程序实体:List和Element。前者实现了一个双向链表(以下简称链表),而后者则代表了链表中元素的结构。 //这是一个list中存储的元素 type Element struct { // Next and previous pointers in the doubly-linked list of elements. // To simplify the implementation, internally a list l is implemented // as a ring, such that &l.root is both the next element of the last // list element (l.Ba...阅读全文

博文 2018-09-27 00:34:39 one_zheng

TCP协议特点和三次握手/四次挥手

一.TCP的特性 TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。 二.三次握手与四次挥手 所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时...阅读全文

plan9 汇编

声明 golang使用的是plan9汇编,不少调度的底层代码都是通过plan9实现,因此了解plan9汇编对Go源码剖析有非常重要的意义,以下的内容均针对golang中使用的plan9汇编。 汇编知识比较杂,如果有需要可以专门去学,本文只是为了看懂golang使用的汇编代码,因此只是简单介绍。 以下内容均来自网上整理,非原创,如有雷同,见谅。 通用寄存器 rax, rbx, rcx, rdx, rdi, rsi, r8~r15 共15个通用寄存器。 在golang中这些寄存器对应了R1-R15,对应关系如下 硬件寄存器 Golang中的表示 rax R1 rbx R2 rcx R3 rdx R4 rdi R5 rdi R6 rsi R7 r8-r14 R8-14 rip(pc) R15 在g...阅读全文

博文 2020-05-11 07:32:46 不争_900c

【GO for java programmers】面向Java开发者的GO编程2

英文原文在此www.nada.kth.se/~snilsson/go_for_java_programmers 译文同步至http://blog.csdn.net/kkkloveyou/article/details/8308534 http://bbs.gocn.im/thread-73-1-1.html ====================接上文,以下正文========================. 条件语句 Go在条件语句中并不使用括号,像 if条件语句 , for 条件语句的表达式, switch 条件语句的值. 另一方面,它并不需要在if或 for条件语句中加花括号 if a < b { f() } if (a < b) { f() } // 括号是不必要的. if (a...阅读全文

博文 2015-06-17 23:08:23 kkkloveyou

VS Code 强有力的Golag编辑环境

VS Code 强有力的Golag编辑环境 简介 我现在基本只用VSCode了,微软想认真做一个东西,真的就是品质的认证.这里有一个中文手册,这里我就是简单的讲一讲我自己的心得 用来开发Golang优点 可以按照workspace进行配置编辑配置,我可以一个项目一个Gopath,防止所有项目共用Gopath造成过渡补全,索引的一些问题,在workspace config 你完全可以这样 { "go.gopath": "/home/ysy/work/lib1:/home/ysy/work/lib2:${workspaceRoot}" } 完美支持Gocode,Gofmt,Godef等工具,完美的补全,代码索引 超预期的go test支持,直接帮你生成按钮有木有,点一点就能go test! 有什...阅读全文

博文 2017-06-10 00:00:01 yangshiyu

用Golang实现基于kafka中间件

这两天用Go写了第一个项目,还在demo阶段,后续会持续记录关于Go开发的一些坑点。 项目叫做bigpipe,是为了解决服务之间异步Http调用而生的,用Go实现起来非常的简单,并发能力也很不错。 我为项目做了一个简单的分享PPT供下载。 项目地址:https://github.com/owenliang/bigpipe,编辑器一定要用Gogland,错误提示太强大,很难写出错误的代码! 目前有几个心得记录一下: 配置文件我用的json,因为go是强类型,所以解析json异常痛苦,但是开源库我也不放心,所以就用标准库json慢慢搞。 一个目录下的go文件属于一个包,包就是目录的名字,包内互相调用不需要import了。 管道是引用的,不需要指针。 格式化字符串时,传string*和string...阅读全文

博文 2017-09-30 08:25:20 鱼儿的博客

Go by Example: Variables

在Go语言中,所有的变量都是显示声明的。编译器会使用变量进行相应的操作,例如:在函数调用时进行类型检查。 package main import "fmt" func main() { //使用var声明单个或者多个变量 var a string = "initial" fmt.Println(a) //你也可以一次声明多个变量 var b, c int = 1, 2 fmt.Println(b, c) //Go语言会利用初始化的变量推断出变量的类型 var d = true fmt.Println(d) //变量声明时,如果没有进行初始化。那么它的值为相应类型的零值(zero-valued) //例如:int型变量的零值为0. var e int fmt.Println(...阅读全文

博文 2015-06-17 23:08:14 codemanship