-
golang的加法比C快?
所属栏目:[大数据] 日期:2020-12-16 热度:192
1.31 晚上的火车回家,在公司还剩两个小时,无心工作,本着不虚度光阴的原则(写这句话时还剩一个半小时~~),还是找点事情干。决定写一下前几天同事遇到的一个golang与c加法速度比较的问题(现在心里在想我工作不饱和的,请大胆的把你的名字放到留言区!)[详细]
-
golang 文件操作
所属栏目:[大数据] 日期:2020-12-16 热度:86
golang中对文件的操作方法封装在os包中的type File struct中 File represents an open file descriptor. 创建新文件 Create func Create(name string) (file *File,err error) Create creates the named file,truncating it if it already exists. If succes[详细]
-
[Go] golang的竞争状态
所属栏目:[大数据] 日期:2020-12-16 热度:102
1.goroutine在逻辑处理器的线程上进行交换 2.竞争状态:两个或者多个goroutine在没有互相同步的情况下,访问某个共享的资源,并试图同时读和写这个资源,就处于互相竞争的状态 对共享资源的读和写操作必须是原子化的,同一时刻只能有一个goroutine对共享资源进行[详细]
-
【Go】strings.Replace 与 bytes.Replace 调优
所属栏目:[大数据] 日期:2020-12-16 热度:117
原文链接:https://blog.thinkeridea.com/201902/go/replcae_you_hua.html 标准库中函数大多数情况下更通用,性能并非最好的,还是不能过于迷信标准库,最近又有了新发现, strings.Replace 这个函数自身的效率已经很好了,但是在特定情况下效率并不是最好的[详细]
-
golang中的字符串拼接
所属栏目:[大数据] 日期:2020-12-16 热度:160
?go语言中支持的字符串拼接的方法有很多种,这里就来罗列一下 常用的字符串拼接方法 1.最常用的方法肯定是 +?连接两个字符串。这与python类似,不过由于golang中的字符串是不可变的类型,因此用 +?连接会产生一个新的字符串对效率有影响。 s1 := " 字符串 "[详细]
-
golang cache--go-cache
所属栏目:[大数据] 日期:2020-12-16 热度:183
go-cache是一款类似于memached 的key/value 缓存软件。它比较适用于单机执行的应用程序。 go-cache实质上就是拥有过期时间并且线程安全的map,可以被多个goroutine安全访问。 下面举例说明其用法。 Demo package mainimport ( "log" "time" "github.com/patr[详细]
-
golang context
所属栏目:[大数据] 日期:2020-12-16 热度:51
? ? ? package mainimport ("context""fmt""time")var (cxt context.Contextcxt1 context.ContextcancelFunction context.CancelFunc)func gooo(ctx context.Context,num int){for{select{case -ctx.Done() :fmt.Println("退出操作",num)returndefault:fmt.P[详细]
-
golang垃圾回收和SetFinalizer
所属栏目:[大数据] 日期:2020-12-16 热度:152
golang自带内存回收机制--GC。GC通过独立的进程执行,它会搜索不再使用的变量,并释放。需要注意的是,进行GC会占用机器资源。 GC是自动进行的。如果要手动进行GC,可以调用runtime.GC()函数,进行显式GC。 SetFinalizer 一个对象object被GC时,如果需要执行[详细]
-
golang总结-并发
所属栏目:[大数据] 日期:2020-12-16 热度:117
目录 2.7 并发编程 go协程 go管道 2.7 并发编程 go协程 golang 通过一个go关键字就可以开启一个协程。 func main() { //两个交错输出 go sayHello() go sayHello2() time.Sleep(time.Second * 3) //阻塞主线程}func sayHello() { for i := 0; i 30; i++ { fm[详细]
-
golang单元测试
所属栏目:[大数据] 日期:2020-12-16 热度:81
使用 testing 进行单元测试 golang的测试库 testing 测试文件与被测试文件在同一个包中 测试文件名为 被测试文件名(去后缀)_test.go 测试用例函数以 Test 开头, TestFunc1(t *testing.T) 一个测试用例文件中可以有多个测试用例函数 在测试用例函数中调用被[详细]
-
golang package log
所属栏目:[大数据] 日期:2020-12-16 热度:95
package mainimport ( "log" "os")var logger *log.Loggerfunc main() { file,err := os.OpenFile("test.log",os.O_APPEND|os.O_CREATE,666) if err != nil { log.Fatalln("fail to create test.log file!") } defer file.Close() logger = log.New(file,"",[详细]
-
golang如何访问界面字段
所属栏目:[大数据] 日期:2020-12-16 热度:99
我有一个下面的函数来解码一些json数据并返回它作为一个接口 package searchfunc SearchItemsByUser(r *http.Request) interface{} { type results struct { Hits hits NbHits int NbPages int HitsPerPage int ProcessingTimeMS int Query string Params st[详细]
-
golang函数闭包实现波费纳契数列
所属栏目:[大数据] 日期:2020-12-16 热度:80
直接看代码: package main import "fmt" func fibonacci(s1,s2 int) func() int { fmt.Println( "start with:",s1,s2) left := s1 right := s2 return func() int { nest := left + right left = right right = nest return nest } } func main() { f := fi[详细]
-
【Go】Mac上安装Go
所属栏目:[大数据] 日期:2020-12-16 热度:172
一:首先安装brew,方便管理,安装方法,终端中输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 二:brew包管理器安装好后,直接利用brew安装Go brew install go 安装完毕后,运行go version即可查看当前g[详细]
-
golang与vscode的安装与配置
所属栏目:[大数据] 日期:2020-12-16 热度:114
? 一.golang的下载与安装 以下都是win10的安装与配置 go语言官方下载地址:https://golang.org/dl/ 找到适合你系统的版本下载 傻瓜式安装开始... 二.golang环境变量配置 ? ?重要的2个变量环境:修改成自己合适的地址 GOROOT GOPATH 打开cmd,分别执行两个命令"[详细]
-
Golang:接口(interface)
所属栏目:[大数据] 日期:2020-12-16 热度:88
Go中没有class的概念。Go 语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。 Go 语言的接口设计是非侵入式的,接口不知道接口被哪些类型实现。而实现不用指明具体实现哪一个接口。编译时[详细]
-
golang协程池设计
所属栏目:[大数据] 日期:2020-12-16 热度:90
Why Pool go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golang?net/http包中,每一个被监听到的tcp链接都是由一个groutine去完[详细]
-
SHA256的要点总结
所属栏目:[大数据] 日期:2020-12-16 热度:152
SHA256在线验证链接:SHA256 online hash function? My Golang github源码 :https://github.com/kumataahh/Golang-toolbox/blob/master/sha256/sha256_source.go ?SHA256的加密过程归为三个点 常量的初始化 信息预处理 使用到的逻辑运算 计算信息摘要 初始[详细]
-
(golang)HTTP基本认证机制及使用gocolly登录爬取
所属栏目:[大数据] 日期:2020-12-16 热度:51
内网有个网页用了HTTP基本认证机制,想用gocolly爬取,不知道怎么登录,只好研究HTTP基本认证机制 参考这里:https://www.jb51.net/article/89070.htm?? 下面开始参考作者dotcoo了:-) 看了http权威指南第12章HTTP基本认证机制(本站下载地址://www.jb51.n[详细]
-
golang 初体验 - 并发与锁.3 - 竞态
所属栏目:[大数据] 日期:2020-12-16 热度:128
竞态,就是多个协程同时访问临界区,由并发而产生的数据不同步的状态。 这个说的有点low,没办法,我就是这么表达的,官方的请度娘。 先上代码: 输出: 为何不是1000?就是因为竞态,发生竞态后,最终的输出是以最后一个协程执行的结果为准,但最后一个协程[详细]
-
[Go] golang缓冲通道实现资源池
所属栏目:[大数据] 日期:2020-12-16 热度:98
go的pool资源池: 1.当有多个并发请求的时候,比如需要查询数据库 2.先创建一个2个容量的数据库连接资源池 3.当一个请求过来的时候,去资源池里请求连接资源,肯定是空的就创建一个连接,执行查询,结束后放入了资源池里 4.当第二个请求过来的时候,也是去资源池请[详细]
-
[Go] golang的range循环遍历通道
所属栏目:[大数据] 日期:2020-12-16 热度:66
range循环会无限在channels上面迭代 package mainimport ("fmt""time")func main() {//创建一个通道ch := make(chan int)//开启一个goroutinego func() {//无限循环for {//往通道里发送数据ch - 1//睡眠一秒time.Sleep(time.Second)}}()//无限循环从通道中读[详细]
-
Golang开发实践:把数据库数据保存到map[string]interface{}中
所属栏目:[大数据] 日期:2020-12-16 热度:122
Golang读取数据库很简单,可以使用ORM也可以直接使用SQL语句。然而要处理的数据库表有几十个字段,光是定义一个四十多个字段的数据模型就让人感觉痛苦,况且并不是所有字段都要参与运算。于是就决定使用SQL语句来处理。保存到map[string]interface{},这样也[详细]
-
golang http.client 遇到了 Connection reset by peer 问题
所属栏目:[大数据] 日期:2020-12-16 热度:93
最近一个 golang 写的 http.client 的,获取远程服务器数据,有时候会报错,尤其在数量很大的时候,老是收到?Connection reset by peer 这样的 提醒,都有点想用重试机制 ? 百度,goolge 了一翻后,说的是?它会阻止连接被重用,可以有效的防止这个问题,也就是Http[详细]
-
golang开发不错的参考资料
所属栏目:[大数据] 日期:2020-12-16 热度:199
https://golangbot.com/learn-golang-series/ https://gist.github.com/ivangabriele/1c552aadc247c0a2f256292c1e49de15 https://github.com/golang-standards/project-layout https://github.com/gin-gonic/gin http://cgrant.io/tutorials/go/simple-crud-[详细]
