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

【玩转云存储】对象存储OSS使用方法入门

课程介绍 阿里云对象存储OSS,提供海量、安全、低成本、高可靠的云存储服务,提供99.99999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。 本课程主要介绍对象存储OSS的使用方法。 课程目标 • 掌握对象存储OSS的使用技巧 适合人群 • 云计算开发者 课时列表 • 课时1:对象存储OSS基本概念讲解 • 课时2:对象存储OSS静态网站托管功能 • 课时3:对象存储OSS跨域(CORS)管理功能 • 课时4:对象存储OSS权限控制功能 • 课时5:对象存储OSS日志统计功能 • 课时6:对象存储OSS文件(Obj...阅读全文

Tide: 比lsp-mode更好的JavaScript智能补全插件

LSP (Language Server Protocol) 是微软领导开发的编程语言语法补全和代码分析框架, 好处是全世界黑客都一起开发 LSP 后端, 不论你用的是 Emacs, Vim 还是 Sublime, VSCode, Elicpse, IntelliJ 等编程工具, 都可以享受同等智能的语法补全后端. Emacs 的 lsp-mode 是LSP协议在Emacs的客户端实现. lsp-mode现在能够很好的支持 C++, Python, Ruby, Golang, Haskell, OCamel, Rust, PHP等语言. 当然也包括 JavaScript. lsp-mode 对 JavaScript 的支持主要靠 javascript-typescript-langserve...阅读全文

博文 2018-09-19 02:34:41 ManateeLazyCat

Privoxy | 终端运用privoxy自由选择是否代理拉取Golang包(Mac OS)

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> 背景: 1.运用包管理工具dep管理引用包 2.有些包需要代理,有包是内部包不能用代理 实现: 1.配置socks5代理(略过) 2.安装privoxy 通过brew install privoxy进行安装 安装成功后,通过brew info privoxy查看安装过后的信息 privoxy: stable 3.0.26 (bottled) ******省略****** To have launchd start privoxy now and restart at login: brew services start privoxy Or, if you don't want/need a backgrou...阅读全文

使用Go语言+Protobuf协议完成一个多人聊天室

软件环境:Goland 仓库地址 一、目的 之前用纯逻辑垒完了一个可登入登出的在线多人聊天室(代码仓库地址),这次学习了Protobuf协议,于是想试着更新下聊天室的版本。 主要目的是为了掌握Protobuf的使用。 二、设计思路 通过Protobuf中内置好的编码函数,将要发送的数据进行编码,之后在“编码后的”数据前加入协议号和报头,再转码通过Write与Read函数进行数据的发送和接收。 1,先写好服务端中的监听(Listen)端口函数与客户端上的网络拨号(Dial)函数; 2,客户端,对数据进行解码; //客户端,对接收到的数据进行解码 newTest := &protocol.Conn_ToS{} err = proto.Unmarshal(msgdata[0:msgdata_rea...阅读全文

博文 2018-08-29 06:30:04 OctoptusLian

iOS and Android Programming with Go

Whilst not a new language, Go has gained a lot of interest over the past two years and the number of bigger name projects utilizing the language is growing rapidly. I wrote an introductory article on the language for SitePoint and came across mentions of mobile support, so thought I’d take a look at the possibilities. I was most excited to see what...阅读全文

博文 2016-02-24 20:00:01 rznice

go 流程控制

载:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/02.3.md 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。Go中流程控制分三大类:条件判断,循环控制和无条件跳转。 if if也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事。 Go里面if条件判断语句中不需要括号,如下代码所示 if x > 10 { fmt.Println("x is greater than 10") } else { fmt.Println("x is less than 10") } Go的if还有一个强大的...阅读全文

博文 2016-04-10 01:00:00 yugongpeng_blog

Go语言黑魔法中的问题修正

文: http://studygolang.com/articles/2909 文中大多技巧都是正确的,但是结构体和[]byte之间的转换: 第三式 - 结构体和[]byte互转 有一天,你想把一个简单的结构体转成二进制数据保存起来,这时候你想到了encoding/gob和encoding/json,做了一下性能测试,你想到效率有没有可能更高点? 于是你又试了encoding/binady,性能也还可以,但是你还不满意。但是瓶颈在哪里呢?你恍然大悟,最高效的办法就是完全不解析数据也不产生数据啊! 怎么做?是时候使用这个黑魔法了: type MyStruct struct { A int B int } var sizeOfMyStruct = int(unsafe.Sizeof(MyStru...阅读全文

博文 2016-03-13 01:00:04 InsZVA

[求助] 使用vscode源码跳转问题

![image.png](https://static.studygolang.com/171129/2ce4a785e330eb79c49a730f581e2da4.png) 使用vscode跳转源码跳转到的是Windows 平台的文件 非Linux的 系统使用的Linux ,以下是我的环境变量,没有百度到solution 所以来求助,谢谢! GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/kk/go" GORACE="" GOROOT="/opt/go" GOTOOLDIR="/opt/go/pkg/tool/linu...阅读全文

TODO:字节的那点事Go篇

TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的。 fmt.Println(len(“dsd好”)) 输出的长度是6 fmt.Println(len(string(rune(‘好’)))) 输出的长度是3 fmt.Println(len([]rune(“好的2s”))) 输出的长度是4 所以用string存储unicode的话,如果有中文(中文是由3个字节组成 ),按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下标访问。 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可...阅读全文

博文 2016-12-05 15:00:03 OneTODO

Go语言中的流程控制

1 概述 Go语言提供了条件分支 if,状态分支 switch,循环 for,跳转 goto,延迟执行 defer,这些流程控制语句。分别作说明如下: 2 条件分支 if 依据条件是否满足确定执行哪个分支。语法: if 条件 1 { 分支 1 } else if 条件 2 { 分支 2 } else if 条件 ... { 分支 ... } else { 分支 else } 流程图: Go是强类型,要求条件表达式严格返回布尔型数据! 3 状态分支 switch 3.1 基础 状态分支,依据特定的状态值进行分支判断。语法: switch 分支测试表达式 { case 状态1: 分支1 case 状态2: 分支2 case 状态...: 分支... default: 分支 default } 流...阅读全文

博文 2018-10-28 07:35:08 小韩说课

go的环境部署

首先下载go,要先下载1.4版本,编译下,才能再去编译更高版本的go 巴拉巴拉 搞定了 代码跳转: vim-go 顺着说明走,遇到个问题,golang.org/x....的包下载不下来,我在本地是可以(本地可以看世界),然后我就想能不能像python那样,把源代码直接scp过去直接使用呢,go是需要编译的,我顺着这个思路,把src下面的golang的源代码,全部scp到了开发机上,然后执行go install golang.org/x/tools/cmd/guru,就可以解决这个问题。。。 这样一个基本的可用的环境就部署好了...阅读全文

博文 2016-06-07 02:00:03 symons1992

2:GO基础知识

package main import ( "fmt" ) func main() { c() } // 1,变量 func test1() { //-----------------------------1.1变量声明 var v1 int var v2 string var v3 [10]int //数组 var v4 []int //数组切片 var v5 struct { f int } var v6 *int //指针 var v7 map[string]int //key为string value为int的map var v8 func(a int) int //-----------------------------1.2变量初始化 var v9 int = 10 var ...阅读全文

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

什么样的网站更易于网络推广?

很多传统行业与新兴企业开始逐步踏入互联网,很多企业看到了网络所存在的无限资源,想要在互联网圈子里分到一杯羹。想要入驻这个互联网圈子,首先你要拥有一个能和同行叫嚣的“资本”——网站。这个资本不但要搭建出来,还要搭建的更易于你去宣传推广,搭建的让用户喜欢,这样才能更好的发挥作用。说到网站建设,对于很多企业与行业来讲,是一件进军互联网的大事,他们往往在网站建设的时候花费太多的准备工作,错失了许多上线的黄金机会。 互联网在日新月变,每时每刻都有企业与行业进入到这个圈子。但是也有许多被互联网的浪潮所推翻,推翻的原因在于他们不懂得在这个网络的浪潮中找到自己的生存方式,没有找到合适的出路。在互联网这个大集团里,最忌讳的是故步自封。你要做的是会看“大哥方向”,何为“大哥方向”?那就是你行业的龙...阅读全文

golang[47]-区块链-比特币交易

比特币的交易第一笔交易比较特殊,他是coinbase交易,矿工的收益。金额每4年减少一半,从2009年一开始一个区块奖励50BTC、后来减少为了25个BTC、一直到18年 12.5BTC。总共有2100万BTC。交易和我们的银行的转账非常不同,比特币中没有记录账户的信息、而是交易的信息。go实现交易 demo本文链接: https://dreamerjonson.com/2018/12/13/golang-47-blockchain-transation/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处...阅读全文

博文 2019-02-21 15:36:15 jonson_jackson

html5自适应网站模板

移动网络正在覆盖式的普及,移动设备上网的用户越来越多。使用移动设备上网的人已经超越桌面设备,移动设备访问互联网成为了最常见的终端。那怎么样才能在不同大小分辨率的设备上程序一样的网站页面呢?对于这个问题,很多设计者们的解决方法就是为不同设备制做一个特定的版本。这样固然是解决了问题,但是解决起来带了许多麻烦之处。特别是在维护更新方面,让运营者带来许多麻烦。于是就有设计者提出了一次设计,普遍使用!让同一张网页自动适应不同的屏幕分辨率,根据不同大小分辨率的屏幕宽度,进行自动调整布局,从而实现自适应布局。 对于自适应网站模版,我们该如何选择呢?对于模版可以直接进行购买,或者去找一些已经开源的资源。但是最好的还是自己设计的模版。但是对于网站模版这一方面来说,重新...阅读全文

Go汇编学习 2.解构AMD64 bytes.Equal

Go汇编学习 2.解构AMD64 bytes.Equal 2017-02-09 上一篇学了内存结构基本知识,本文将学习符号(symbol)、语句的含义。 我个人喜欢通过例子来学习,所以,我就从src/runtime/asm_amd64.s里的bytes·Equal入手吧:) 对应代码 TEXT bytes·Equal(SB),NOSPLIT,$0-49 MOVQ a_len+8(FP), BX MOVQ b_len+32(FP), CX CMPQ BX, CX JNE eqret MOVQ a+0(FP), SI MOVQ b+24(FP), DI LEAQ ret+48(FP), AX JMP runtime·memeqbody(SB) eqret: MOVB $0, ret+48(FP)...阅读全文

博文 2017-02-11 08:50:17 蒙卓

angular中$state.go跳转页面并传递参数

遇到一个页面跳转的时候,在跳转后的页面获取跳转前页面的数据,我想到用一种是localstorage,一种用broadcast和on,然后老大说不用这么麻烦,既然都$state.go了直接带参数,这次就介绍一下$state.go页面跳转传递参数。 1.路由页面(注意这里要在路由上添加一个参数用于传递数据,不然在页面跳转的时候会filter) .state("home.workpiece",{ // 跳转前的页面 url:"/workpiece", views: { home: { templateUrl: prefix + "project/workpiece.html", controller: "workpieceCtrl" } } }) .state("home.workpieceDet...阅读全文

博文 2017-05-08 14:00:26 Jiaen188

google host 2014

google hosts 2014.12.10 更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新。 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可====== #google hosts 2014 by 360kb.com #base services 64...阅读全文

博文 2015-06-17 20:12:47 spy19881201

C Bindings in Go: A Practical Example Part 1

这篇文章对于想在go中使用c语言的朋友应该很有帮助,一步步讲解了怎么做。 另外,按照文章一步步做,需要安装 libspotify 库,可以到这里下载,各大平台都支持:http://developer.spotify.com/technologies/libspotify/ 文章链接:http://codegangsta.io/blog/2013/07/08/c-bindings-in-go-a-practical-example/ (其实点击标题也会跳转到原文...阅读全文

golang中encoding/pem包

1、golang中pem包是什么? 2、golang中的pem包为我们开发者提供了哪些功能? 3、我们可以用pem包做什么?以及怎么使用代码实现? 一、golang中pem包是什么? 官方标准库给出的解释:pem包实现了PEM数据编码(源自保密增强邮件协议)。目前PEM编码主要用于TLS密钥和证书。参见RFC 1421 也就是这个包实现了对PEM解码,以及进行PEM编码 我们不必关心PEM格式的数据长怎么样,只要关注怎么将其他格式数据转换成PEM格式数据,以及将PEM格式数据转换成其他格式数据。如果需要了解PEM是什么,可以阅读RFC 1421文档。 二、golang中的pem包为我们开发者提供了哪些功能? 根据前面分析出来的内容,可以知道分为两个内容,分别是对数据进行PEM编码和解码。也就...阅读全文

博文 2018-12-11 03:34:42 laijh

golang(Go语言) byte/[]byte 与 二进制形式字符串 互转

效果 把某个字节或字节数组转换成字符串01的形式,一个字节用8个"0"或"1"字符表示。比如: byte(3) --> “00000011” []byte{1,2,3} --> "[00000001 00000010 00000011]" "[00000011 10000000]" --> []byte{0x3, 0x80} 开源库 biu 实际上我已经将其封装到一个开源库了(biu),其中的一个功能就能达到上述效果: //byte/[]byte -> string bs := []byte{1, 2, 3} s := biu.BytesToBinaryString(bs) fmt.Println(s) //[00000001 00000010 00000011] fmt.Println(b...阅读全文

博文 2017-09-03 07:04:58 imroc

Golang - OAuth2.0使用 - fasthttp版本

### OAuth2.0在golang下的使用 ##### 一、简介 > 1、OAuth2.0使用https来做安全保护,避免了OAuth1.0的复杂加密,让开发人员更容易使用。 > 2、接入的四种模式,一般采用授权码模式,比较安全,其次是密码模式,不建议使用,其他2种更不推荐。 ##### 二、接入流程 ![授权码流程图](https://img-blog.csdnimg.cn/20191123231151293.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d5YW5zYWk=,size_16,color_FFFFFF,t_70...阅读全文

博文 2019-11-24 12:42:24 wyanlord

golang[47]-区块链-比特币交易

比特币的交易第一笔交易比较特殊,他是coinbase交易,矿工的收益。金额每4年减少一半,从2009年一开始一个区块奖励50BTC、后来减少为了25个BTC、一直到18年 12.5BTC。总共有2100万BTC。交易和我们的银行的转账非常不同,比特币中没有记录账户的信息、而是交易的信息。go实现交易 demo123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101...阅读全文

博文 2018-12-14 23:36:00 jonson_jackson

Golang——json数据处理

今天让官方文档虐了几条街。 需要能够对JSON数据进行编码,将内部的中文字符串转成Unicode编码。编码这种东西接触也不少了,随便搜一下就能解决。果断去搜了一下。本文所有编码 rs := []rune("golang中文unicode编码") j := "" html := "" for _, r := range rs { rint := int(r) if rint < 128 { j += string(r) html += string(r) } else { j += "\\u" + strconv.FormatInt(int64(rint), 16) // json html += "&#" + strconv.Itoa(int(r)) + ";" // 网页 } } fmt....阅读全文

Go语言中的流程控制

## 1 概述 Go语言提供了条件分支 if,状态分支 switch,循环 for,跳转 goto,延迟执行 defer,这些流程控制语句。分别作说明如下: ## 2 条件分支 if 依据条件是否满足确定执行哪个分支。 语法: ``` if 条件 1 { 分支 1 } else if 条件 2 { 分支 2 } else if 条件 ... { 分支 ... } else { 分支 else } ``` 流程图: ![if](http://www.hellokang.net/images/posts/go/go-if.png) Go是强类型,要求条件表达式严格返回布尔型数据! ## 3 状态分支 switch ### 3.1 基础 状态分支,依据特定的状态值进行分支判断。 语法: ``` s...阅读全文

博文 2018-10-30 22:02:40 hanzkering

golang中channel的用法

channel有点类似于管道,它在goroutine同步与通信中,有着起承转合的作用,同时也是Golang实现CSP模型的关键 package main func main() { senderOnly := make(chan<- int) // 只能用来发送(管道的入口,只进不出) receiverOnly := make(<-chan int) // 只能用来接收(管道的出口,只出不进) unbuffer := make(chan int) // 无缓冲可收发 buffer := make(chan int, 2) // 无缓冲可收发 println(senderOnly, receiverOnly, unbuffer, buffer) } 以下是channel的一些使用场景 等待go...阅读全文

博文 2018-10-26 00:34:46 wu_sphinx

不学无数——Mybatis解析判断表达式源码分析

Mybatis解析判断表达式源码分析在我们开发过程中用 Mybatis 经常会用到下面的例子Mapper如下Map testArray(@Param("array") String [] array);XMl中的sql如下刚看上面的代码会觉得数组怎么能和空字符串进行一起比较呢,一开始会觉得这个代码运行起来绝对报错...阅读全文

博文 2018-10-12 21:12:32 Enjoyjava

golang学习笔记[1] 基础知识

golang发现就很好玩。 很久没有写日志了,继续恢复吧。 // one project main.go package main import ( "errors" "fmt" "math" "os" ) func main() { /* Go语言基础类型 布尔类型:bool 整型:int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,byte,uintptr (一般使用int和unit就好啦) 浮点类型:float32,float64 复数类型:complex64,complex128 字符串:string 字符类型:rune 错误类型:error Go语言复合类型 指针 pointer 数组 array 切片 siice ...阅读全文

博文 2015-06-17 20:05:15 zhouyunxuan

使用golang编写Web程序(三)

上一节我们使用go语言加载了一个纯文字的html页面,但是没有实现交互功能,我们改造一下html页面,增加两个页面代码如下: input.html

<input name="username" value="">
output.html 你好:{{.username}} 上面html代码通过form的POST方法发送请求数据到服务端,服务端代码如下: main.go package main import ( "fmt" "html/template" "log" "net/http" ) func InputHandler(w ...阅读全文

博文 2018-12-29 10:35:57 渣渣曦

从零学习 Go 语言(11):goto 无条件跳转

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolang.com/articles/27365) [从零学习 Go 语言(02):学习五种变量创建的方法](https://studygolang.com/articles/27432) [从零学习 Go 语言(0...阅读全文

博文 2020-05-06 08:35:20 hello_wbm

Golang transfer file with socket

package main import ( "bufio" "code.google.com/p/mahonia" "fmt" "io" "net" "os" ) func main() { fmt.Println("create a server or client?") reader := bufio.NewReader(os.Stdin) input, _, _ := reader.ReadLine() if string(input) == "server" { Server() } if string(input) == "client" { Client() } else { fmt.Println(Show("err arguments,entering again!.\r\n...阅读全文

博文 2017-02-09 08:26:43 载昊君

爬虫自动转码,获取城市列表:城市名称+URL

//下载插件工具 go get -v github.com/gpmgo/gopm //自动导入包插件 gopm get -g -v golang.org/x/tools/cmd/goimports //转码插件 gopm get -g -v golang.org/x/text //自动检测网页编码 gopm get -g -v golang.org/x/net/html package main import ( "net/http" "io/ioutil" "fmt" "golang.org/x/text/transform" "io" "golang.org/x/text/encoding" "golang.org/x/net/html/charset" "bufio" "regexp"...阅读全文

博文 2018-08-24 17:35:08 次序

兄弟连区块链教程以太坊源码分析CMD深入分析(二)

cmd包下的geth子包主函数启动的各个子命令解析/gethinitfunction:导入创世块的json,以指定的json作为创世块args:demo: init /home/yujian/eth-go/genesis.jsonnotice:ethereum默认创建路径为home目录的.ethereum,如果该目录下已经写入过创世快,会执行失败success_result_demo:WARN [01-16|10:25:12] No etherbase set and no accounts found as defaultINFO [01-16|10:25:12] Allocated cache and file handles database=/home/yu...阅读全文

博文 2018-10-18 15:34:44 兄弟连区块链培训

小白求助 退出登录时点击链接自动跳转到根目录

登录时跳转都正常,退出时就会自动跳转到根目录,看了好几天没有找到问题原因在哪儿,遇到这种问题我们通常应该怎么去分析? ![image.png](https://static.studygolang.com/180430/f80c3b30f9eefb723461fbc58fa05ffc.png) ![image.png](https://static.studygolang.com/180430/8208f51879a7816be5070acb9557f5d9.png) ...阅读全文

emacs 中go的自动补全

之前一直使用的是 gocode (https://github.com/nsf/gocode ), 后来项目不维护了让用 https://github.com/mdempsky/gocode, 然后这个项目又不维护了,让用 https://github.com/stamblerre/gocode, 然后这个项目也不维护了,都一齐推荐使用 gopls. gopls 的介绍见 https://github.com/golang/tools/blob/master/gopls/README.md, 从地址中看出,这是一个 golang 官方tools 库中的项目。应该以后不会再换了。不过从介绍上看,还处在 alpha 阶段,尚不稳定。2020 年上半年会发布稳定版。 gopls 是官方的 Lang...阅读全文

博文 2020-05-16 21:33:08 圣斗士皮皮

vs code配置golang环境

vscode开发golang时会出现,dot import的时候无法跳转到定义的问题。 解决方式: go get github.com/zmb3/gogetdoc 然后在vs code的settings.json配置文件中添加 "go.docsTool": "gogetdoc", 以下是完整的settings.json { "files.autoSave": "onFocusChange", "go.buildOnSave": true, "go.lintOnSave": true, "go.vetOnSave": true, "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.useCodeSnippetsOnFu...阅读全文

博文 2018-12-29 10:36:00 hexg1016

thinkphp分页格式的完全自定义,直接输入数字go到输入数字页

实现分页效果如下: 以下标注红色字体的为重点 找到文件page.class.php在ThinkPHP/Library/Thinkpage.class.php并打开文件,复制函数show,在本文件中黏贴并改成你自定义的函数名,在此我更改为show1,更改上一页,下一页,第一页和最后一页的逻辑输出,将数字链接for循环删除,其他不变,更改如下: public function show1() { if(0 == $this->totalRows) return ''; /* 生成URL */ $this->parameter[$this->p] = '[PAGE]'; $this->url = U(ACTION_NAME, $this->parameter); /* 计算分页信息 */ $thi...阅读全文

博文 2016-08-17 03:00:01 zhuyefengying

go golang 判断base64数据 获取随机字符串 截取字符串

go golang 判断base64数据 获取随机字符串 截取字符串 先少写点,占个坑,以后接着加。 1,获取指定长度随机字符串 func RandomDigits(length int) string { return randomString(length, []byte(Digits)) } func randomString(length int, base []byte) string { bytes := make([]byte, length) maxIndex := len(base) for i := 0; i < length; i++ { index := rand.Intn(maxIndex) bytes[i] = byte(base[index]) } return...阅读全文

博文 2017-09-24 08:30:01 mingbai

channel和select控制goroutines

最近有一个需求是在一个常驻内存的程序中结束相关任务。在Go中,创建一个goroutine非常简单,只需要go一下就可以了,但是如果我创建了很多goroutine,想要结束怎么办? 比如说我有一个死循环的例子 package main import ( "fmt" "sync" "time" ) func main() { queue := make(chan int, 20) var wg sync.WaitGroup for { // 就是一个死循环 queue <- 1 <-queue for i := 0; i < 10; i++ { wg.Add(1) go func(i int) { time.Sleep(5 * time.Second) fmt.Println("Sleep") ...阅读全文

golang 学习笔记之字符串

golang 中字符串相关操作用得最多的基础库是 strings 和 strconv 1、strings.HasPrefix 判断字符串开头常见的场景是用来判断服务地址是HTTP还是HTTPS 协议,例如:func main() { str := "http://www.baidu.com" if ok := strings.HasPrefix(str,"http://");ok { fmt.Println("it's http protocol") }else{ fmt.Println("unknown") } }2、strings.HasSuffix 判断字符串后缀场景,用于判断文件类型,例如图片是否是png格式func main() { pic := "baidu.png" if ok...阅读全文

博文 2019-06-18 22:03:49 筑梦攻城狮

架构师知识体系整理

抽空系统整理一下知识体系.仅仅作为一个纲要.1. 计算机基础1.1 CPUCPU指令流水线CPU多级缓存CPU缓存失效CPU 缓存一致性协议CPU MUMA架构多核CPU的演进CPU分支预测1.2 内存内存访问主内存工作内存虚拟内存页表/TLBMMAP内核page cache内核block cache进程地址空间内核地址空间1.3 磁盘机械磁盘/SSD/NVME ...顺序读写/随机读写内核 cache/预读cache脏页flush磁盘cachefsync/datasync/sync原子读写MMAPMMAP读写性能分析磁盘IO1.4 文件 本地文件远程文件虚拟文件系统卷MMA以及异常软链接/硬链接文件句柄/资源1.5 网络IO多路复用TCPHTTP/HTTPS代理带宽1.6 容器隔离CPU/...阅读全文

博文 2019-12-17 18:32:45 贺大伟

golang 环境配置建议

AUTH:PHILO VERSION:1.2 开发环境的必要特征 项目管理 快速文件跳转 自动语法检查 自动补全 查找定义 启动速度快 如果自己有需求的话插件可以随便写 灵活的运行配置 (project,lint,hint,autocomplete) 要实现上面几点我们来一步一步的配置。 我的大环境 OSX GO 1.4 HomeBrew go 环境安装 这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。 环境配置:(golint,gooracle,mercurial) 1. 安装mercurial: brew install mercurial> 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用...阅读全文

博文 2017-02-09 13:43:48 Aomine

01-Go语言环境搭建

什么是GO语言 Go语言(Golang)是Google公司2009年推出的一门"高级编程语言" Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言的优势 简洁 快速 安全 并行 有趣 开源 内存管理 数据安全 编译迅速 应用场景 网络编程,如web应用 云平台开发 服务器编程 分布式系统... Go语言的SDK安装和配置 SDK(软件开发工具包(外语首字母缩写:SDK、外语全称:SoftwareDevelopmentKit)) 安装步骤 1.下载安装包 Golang下载地址:点击跳转 image 2.运行安装包 image image image image image image 3.配置环境变量 3...阅读全文

博文 2018-10-08 19:34:41 月色下的阳光

golang float64 和 []byte 互相转换

import ( "encoding/binary" "math" ) //Float64ToByte Float64转byte func Float64ToByte(float float64) []byte { bits := math.Float64bits(float) bytes := make([]byte, 8) binary.LittleEndian.PutUint64(bytes, bits) return bytes } //ByteToFloat64 byte转Float64 func ByteToFloat64(bytes []byte) float64 { bits := binary.LittleEndian.Uint64(bytes) return math.F...阅读全文

博文 2019-07-05 19:32:41 whitemon

Mac下go vim环境搭建笔记

vim-go安装 .vimrc的配置 " Plugins managed by vundle if (isdirectory(g:vimPath . 'bundle/Vundle.vim')) let &runtimepath.=',' . g:vimPath . 'bundle/Vundle.vim' call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'fatih/vim-go' call vundle#end() endif 除了vim-go插件,还需安装vundle插件,这是一款vim的插件管理工具 配置好后执行: :PluginInstall 安装vim-go需要的二进制文件 You will also need to ins...阅读全文

博文 2020-02-16 10:32:38 byte

Referrer Policy 介绍

当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也有成为用户的一个不安全因素,比如有些网站直接将 sessionid 或是 token 放在地址栏里传递的,会原样不动地当作 Referrer 报头的内容传递给第三方网站。所以就有了 Referrer Policy,用于过滤 Referrer 报头内容,目前是一个候选标准,不过已经有部分浏览器支持该标准。具体的可查看这里。指令值目前包含了以下几种指令值:enum ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", ...阅读全文

博文 2017-08-21 05:23:06 xnotepad