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

小微商户如何接入自己网站?微信小微商户是什么?

微信支付商户申请面向线下小微商户开放,符合条件的微信支付服务商可为小微商户发起接入申请。小微商户是什么呢?如何申请小微商户呢?小酷为您解答。点我开通小微商户​一、小微商户能力介绍1~快速进件2~支持零钱、借记卡、信用卡支付方式3~交易手续费支持11档枚举值4. 每日结算款T+1日自动提现至商户个人银行卡​二、小微商户开通前准备1~身份证:彩色扫描件或数码照片;2~结算银行卡:包含开户银行全称(含支行)、银行帐号;3~店铺门头、内景照各一张。以上照片提前拍好准备在手机相册里面。三、小微商户开通步骤第一步:成为微信买单拓展员进入微信公众号:用卡万事通,点击底部菜单“信用卡”-“微信拓展码”,长按识别进入,点击“接受邀请”,成为微信买单拓展员,进入“微信买单服务商助手”小程序。​小微商户申请第二步...阅读全文

博文 2019-09-02 01:10:49 46099261

驾校答题小程序实战全过程【连载】——6.语音读题

一、目标: 为了更方便查看题目,我们加入读题功能。语音读题主要应用在智能客服机器人、电子有声读物、智慧教育等领域,了解到目前市场语音合成技术,主要有讯飞语音、百度语音、腾讯语音这几家大厂。 都支持男女生声,讯飞价格比较贵,这里发现腾讯语音合成暂时不收费。 腾讯云的语言合成介绍 https://cloud.tencent.com/product/tts#scenarios 摘选:语音合成(Text To Speech)满足已知文本生成语音的需求,打通人机交互闭环。多种音色选择,支持自定义音量、语速,为企业客户提供定制自有领域词库和个性化发音人服务,让发音更自然、更专业、更符合场景需求。语音合成广泛应用于语音导航、有声读物、标准发音领读、自动新闻播报等场景。 本以为这些API厂商,直接提供了AP...阅读全文

博文 2018-11-20 22:34:41 大王12

beego搭建api服务

beego介绍 beego是一个Golang实现的开源Go应用开发框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful的框架,主要设计灵感来源于tornado、sinatra和flask这三个框架,但是结合了Go本身的一些特性(interface、struct 嵌入等)而设计的一个框架。 Beego Framework: 一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架 beego简介 beego安装, bee命令 安装beego #go get github.com/astaxie/beego 安装bee工具,bee工具是一个为了协助快速开发beego项目而创建的项目,可以通过bee快速创建项目、实现热编译、开发测试以及开发完之后打包发布...阅读全文

博文 2016-05-14 10:00:00 ldaniel

Go实例学:函数多返回值

Go语言内置支持多返回值,这个在Go语言中用的很多,比如一个函数同时返回结果和错误信息。 package main import "fmt" // 这个函数的返回值为两个int func vals() (int, int) { return 3, 7 } func main() { // 获取函数的两个返回值 a, b := vals() fmt.Println(a) fmt.Println(b) // 如果你只对多个返回值里面的几个感兴趣 // 可以使用下划线(_)来忽略其他的返回值 _, c := vals() fmt.Println(c) } 输出结果为 3 7 ...阅读全文

博文 2014-11-29 17:00:01 Goopand

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 一、Redis有哪些常用的应用场景 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 二、Redis选型思考 时延 时延=后端发起请求db(用户态拷贝请求到内核态)+ 网络时延 + 数据库寻址和读取 如果想要降低时延,只能减少请求数(合并多个后端请求)和减少数据库寻址和读取得时间。从降低时延的角度,基于单线程和内存的redis,每秒10万次得读写性能肯定远远胜过磁盘读写性能。 数据规模 以redis一组K-V为例(”hello” -> “world”),一个简单的set命令最终会产生4个消耗内存的结构。 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 关于Redis数据存储的细节,又要涉及到内存分配器(如jemalloc)...阅读全文

博文 2019-08-26 21:32:49 勤奋的码农

golang sha1,base64

1.base64编码 package main //这个语法引入了 encoding/base64 包并使用名称 b64代替默认的 base64。这样可以节省点空间。 import b64 "encoding/base64" import "fmt" func main() { //这是将要编解码的字符串。 data := "abc123!?$*&()'-=@~" //Go 同时支持标准的和 URL 兼容的 base64 格式。编码需要使用 []byte 类型的参数,所以要将字符串转成此类型。 sEnc := b64.StdEncoding.EncodeToString([]byte(data)) fmt.Println(sEnc) //解码可能会返回错误,如果不确定输入信息格式是否正确,那...阅读全文

博文 2015-04-21 03:00:00 benlightning

微服务实战(二):使用API Gateway

【编者的话】本系列的第一篇介绍了微服务架构模式。它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择。 当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互。在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点。在微服务架构中,每一个微服务暴露一组细粒度的服务提供点。在本篇文章中,我们来看它如何影响客户端到服务端通信,同时提出一种API Gateway的方法。 介绍假定你正在为在线购物应用开发一个原生手机客户端。你需要实现一个产品最终页来展示商品信息。 例如,下面的图展示了你在亚马逊Android客户端上滑动产品最终页时看到的信息。 虽然这是一个智能手机应用,这个产品最终页展示了非常多的信息。例如,不仅这里有产品基本信息(名字、描述和价格)...阅读全文

博文 2016-03-02 10:44:11 Sonyfe25cp

golang操作mysql使用总结

sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和关闭操作. sql.DB 为我们管理数据库连接池 需要注意的是,sql.DB表示操作数据库的抽象访问接口,而非一个数据库连接对象;它可以根据driver打开关闭数据库连接,管理连接池。正在使用的连接被标记为繁忙,用完后回到连接池等待下次使用。所以,如果你没有把连接释放回连接池,会导致过多连接使系统资源耗尽。 操作mysql 1.导入mysql数据库驱动 1 2 3 4 import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) 通常来说, 不应该直接使用驱动所提供的方法, 而是应该使用 sql.DB, 因此在导入 mysql 驱动时, 这里使用了匿名导入的方式(在包路...阅读全文

博文 2018-03-06 20:33:09 coder_kev

用go语言模拟客户端对服务端发送get和post请求

client.go package main import ( // "bytes" "fmt" "io/ioutil" "net/http" "net/url" ) var client = &http.Client{} func Get() { //向服务端发送get请求 request, _ := http.NewRequest("GET", "http://192.168.1.35:9091/?publicKey=-----BEGIN+PUBLIC+KEY-----%0D%0AMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZsfv1qscqYdy4vY%2BP4e3cAtmv%0D%0AppXQcRvrF1cB4drkv0haU24Y7m5qYtT52...阅读全文

博文 2015-01-08 12:00:01 秦思_li

Golang获取有重定向信息的response的location

在用golang做模拟登录某个网站的功能时发现了一个问题:如何获取该网站带有重定向信息的Response?或者说我只需要这个Response中的location信息即可,但是发现对于go的标准库net/http来说如果不hack这个库是没办法直接获取带有重定向信息的Response,而且目前大多第三方的http库也是基于标准库net/http的,貌似就要改net/http库或库本身就提供了对于重定向的设置? 那么我们就得先查看一下net/http库的源码了,通常我们都会用http.Client的Do方法发起一个请求,首先看一下它的源码: // Do sends an HTTP request and returns an HTTP response, following // policy ...阅读全文

博文 2015-05-04 09:00:01 reflectsky

Golang获取终端输入

package main import "fmt" //var a,b int = 10,20 func main() { //fmt.Println(a,b) // b,a = a,b // fmt.Println(a,b) //要求: 可以从控制台接受用户的信息 【姓名,年龄,薪水,是否通过考试】 //方式1 fmt.Scanln() var name string var age byte var sal float32 var ispass bool fmt.Println("请输入姓名:") //当程序只是到fmt.Scanln(&name)程序会停止执行等待用户输入 fmt.Scanln(&name) fmt.Println("请输入年龄:") //当程序只是到fmt.Scanl...阅读全文

博文 2019-02-26 00:35:44 tianya1993

分布式存储Weed-FS源码分析

基于源码版本号 0.67 , 【Weed-FS又名叫Seaweed-FS】。 Weed-FS 是一个非常优秀的由 golang 开发的分布式存储开源项目, 虽然在我刚开始关注的时候它在 github.com 上面只有 star 50+, 但是我觉得这个项目是一个几千 star 量级的优秀开源项目。 Weed-FS 的设计原理是基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack, 论文很长,但是其实原理就几句话,可以看看 Facebook图片存储系统Haystack , 我觉得Weed-FS是青出于蓝而胜于蓝。 Weed-FS 这个开源系统涵盖的面比较多, 很难在一篇文章里面说清楚, 只能尽可能清楚的说说主要的部分。 源码目录结构 核心模块 weed 入口目录...阅读全文

博文 2015-02-15 18:31:39 YanyiWu

go使用token实现简单的权限管理

这里采用的是在header里设置token进行鉴权,cookie也类似:基本思路为前端在header里设置token,后端采用redis等进行存储,使用中间件进行鉴权,登录时设置token。以下是登录生成token:设置if err:=tools.NewAccountSsdbCache(info.Id,token);err!=nil { c.JSON(403,gin.H{ "status":403, "msg":to.String(err), }) return }方法func NewAccountSsdbCache(userid int64,val string)(err error){ ssdb,err:=common.NewSsdbClient() if err!=nil { retu...阅读全文

博文 2018-04-17 19:40:42 misasky

编写一个go gRPC的服务

前置条件: 获取 gRPC-go 源码 $ go get google.golang.org/grpc 简单例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld 复杂些例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/route_guide 写一个gRPC的服务,一般分下面几步: 在一个 .proto 文件内定义服务。 用 protocol buffer 编译器生成服务器和客户端代码。 使用 gRPC 的 Go API 为你的服务实现一个简单的客户端和服务器。 定义服务 在一个 .proto 文件中定义服务 简单的例子服务定义在: exampl...阅读全文

博文 2016-04-18 22:00:00 ghj1976

报错:exec:"gcc" executable file not found in %PATH%

安装问题在import sqlite的时候,golang build 出现以下错误,exec: "gcc": executable file not found in %PATH%原因是sqlitle3是个cgo库,需要gcd编译c代码Windows下解决方法1. 下载mingw64,并安装下载地址:https://sourceforge.net/projects/mingw-w64/2. 设置环境变量将安装目录下的bin文件夹添加到Path环境变量中:C:\ProgramFiles(x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin3. 测试是否安装成功打开cmd命令行,输入:gcc-v如果出现版本信息,则表示安装成功。...阅读全文

博文 2019-08-28 15:33:01 灰侠_bf44

Go pprof的使用

一、概述go的pprof工具可以用来监测进程的运行数据,用于监控程序的性能,对内存使用和CPU使用的情况统信息进行分析。 官方提供了两个包:runtime/pprof和net/http/pprof,前者用于普通代码的性能分析,后者用于web服务器的性能分析。 官方文档: https://golang.org/pkg/runtime/pprof/ https://golang.org/pkg/net/http/pprof/#Index https://github.com/google/pprof/blob/master/doc/pprof.md 二、runtime/pprof的使用该包提供了一系列用于调试信息的方法,可以很方便的对堆栈进行调试。 通常用得多得是以下几个: StartCPUPr...阅读全文

博文 2018-05-17 09:52:27 马谦的博客

Golang hashmap 的使用及实现

基本语法 定义hashmap变量 由于go语言是一个强类型的语言,因此hashmap也是有类型的,具体体现在key和value都必须指定类型,比如声明一个key为string,value也是string的map, 需要这样做 var m map[string]string // 声明一个hashmap,还不能直接使用,必须使用make来初始化 m = make(map[string]string) // 初始化一个map m = make(map[string]string, 3) // 初始化一个map并附带一个可选的初始bucket(非准确值,只是有提示意义) m := map[string]string{} // 声明并初始化 m := make(map[string]string) ...阅读全文

博文 2017-08-22 10:05:03 51reboot

区块链技术:超级账本(Hyperledger)

摘要超级账本(Hyperledger)是linux基金会下的众多项目中的一个。是由IBM、因特尔,还有金融公司,GP摩根以及其他联合机构于2015年提出来的区块链项目,超级账本还包括5个框架项目:Sawtooth、Iroha、Fabric、Burrow、Indy和3个工具项目:Blockchain explorer、Cello、Composer。其中广为人知的是Fabric。当前成员大约140个,其中1/4来自中国,现在中国技术组由万达、华为、IBM担任主要负责,负责中国会员和中国需求的提供,以及推进代码。下图是项目之间的逻辑关系图: Hyperledger Fabric: 区块链技术的一个实现,它的目标是成为开发应用和解决方案的基础,设计为模块化架构,允许组件如共识和成员服务模块,可以插入...阅读全文

博文 2017-09-08 07:05:04 吉普森

gorm关联查询的坑

背景:最近在学习 golang,尝试将之前的PHP项目用 go改写一下。涉及的表模型如下三个: // 文章 type Topics struct { Id int `gorm:"primary_key"` Title string `gorm:"not null"` Body string `gorm:"not null"` UserId int `gorm:"not null"` CategoryId int `gorm:"not null"` ReplyCount int ViewCount int LastReplyUserId int Order int Excerpt string Slug string Status int `gorm:"default:1"` CreatedA...阅读全文

博文 2018-09-13 17:34:47 AuroraLZDF

golang socket编程

osi参考模型将计算机网络结构分为7个层次,但是在实际的开发应用中,我们更加认可TCP/IP族协议的五层结构,即应用层(http、ftp、dns),传输层(udp、tcp),网络层(ip),链路层(以太网),物理层。 socket编程作为一种基于网络层和传输层的数据io模式主要分为两种,TCP Socket和UDP Socket,也即面向连接的流式Socket和面向无连接的数据报式Socket。 今天主要和大家讲讲golang的TCP Socket编程。先来看个简单的例子吧 server.go //模拟server端 func main() { tcpServer, _ := net.ResolveTCPAddr("tcp4", ":8080") listener, _ := net.Lis...阅读全文

博文 2017-11-30 15:03:06 ssdut_buster

Teleport2.0 一个Golang TCP Socket的全新框架

Teleport beta2.0 实现了一个全新的Golang TCP Socket框架,它通用、高效、灵活!可被用于Peer-Peer对等通信、RPC、长连接网关、微服务、推送服务,游戏服务等领域。 teleport_server 1. 特性 服务器和客户端之间对等通信,两者API方法基本一致 底层通信数据包包含Header和Body两部分 支持单独定制Header和Body编码类型,例如JSON Protobuf Body支持gzip压缩 Header包含状态码及其描述文本 支持推,拉,回复等通信方式 支持插件机制,可以自定义认证、心跳、微服务注册中心、统计信息插件等。 无论服务器或客户端,均支持都优雅重启、优雅关闭 支持实现反向代理功能 日志信息详尽,支持打印输入、输出消息的详细信息(...阅读全文

博文 2017-08-27 09:05:14 HenryLee

Go语言 GC优化经验分享

不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用。 想知道如何提前预防和解决问题的,请耐心看下去。 我们项目的服务端完全用Go语言开发的,游戏数据都放在内存中由go 管理。 在上线测试后我对程序做了很多调优工作,最初是稳定性优先,所以先解决的是内存泄漏问题,主要靠memprof来定位问题,接着是进一步提高性能,主要靠cpuprof和自己做的一些统计信息来定位问题。 调优性能的过程中我从cpuprof的结果发现发现gc的scanblock调用占用的cpu竟然有40%多,于是我开始搞各种对象重用和尽量避免不必要的对象创建,效果显著,CPU占用降到了10%多。 但我还是挺不甘心...阅读全文

博文 2014-10-11 18:00:01 abv123456789

golint---golang代码质量检测

github: https://github.com/golang/lint golint是类似javascript中的jslint的工具,主要功能就是检测代码中不规范的地方。golint用于检测go代码。 使用 $ go get github.com/golang/lint $ go install github.com/golang/lint golint 文件名或者目录 检测对应的代码。 golint会输出一些代码存在的问题: 比如: recorder.go:55:5: exported var RecordBind should have comment or be unexported recorder.go:158:1: exported function Record_Erro...阅读全文

博文 2017-12-20 06:10:37 学习笔记

go调用exe

//调用exe func callEXE1() { arg := []string{} cmd := exec.Command("test", arg...) //会向 cmd.Stdout和cmd.Stderr写入信息,其实cmd.Stdout==cmd.Stderr,具体可见源码 output, err := cmd.CombinedOutput() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("callEXE2结果:\n%v\n\n%v\n\n%v", string(output), cmd.Stdout, cmd.Stderr) } func callEXE2() { arg := []string{}...阅读全文

博文 2014-10-04 19:26:36 陈好

辣眼的观察Inchain印链,只追求独视。

本想让思绪再飞一会儿,但是已经逐渐成型,便一丝不挂托出,这个命题不能偏颇,更不能偏激,尽量走心实在。 他的名字叫Inchain印链,一个区块链圈子里面比较务实的项目。有一群默默耕耘的追梦人,在不断的为这个世界改变输出力量。他们号称区块链先驱践行者;号称国内为数不多的自主研发公有链;号称是西南地区第一个区块链落地应用;号称可以连接大数据、物联网、防伪溯源等,他们正在用自己的理想把区块链的任督二脉激活。 #谈观感# 区块链运动军备竞赛如火如荼,有野蛮人、有抽水机、有矿场霸主,有各种黑白客斗争、扩容也好、分叉也罢,但是整体格局是浩浩荡荡向前推进,Inchain,正好赶上这一波大潮水,顺水推舟,从开始的几个人,发展到30多人的团队,在全国范围内,也可以算增速极快,因为这是项目本身的魅力所在。从一个小...阅读全文

博文 2017-08-18 01:05:19 重特兰大佛跳墙

Alpha Go 的原理浅析(深度学习与强化学习的融合)

前言 这两天网络上被Alpha Go和李世石的围棋对决刷屏,目前Alpha Go已经2-0领先。从前年开始关注研发这套系统的DeepMind公司,一直在追终他们最新的论文。深度学习这个词随着这一事件又火了一把,可是我想说的是虽然阿尔法狗确实得益于深层神经网络的发展,但是其能超过以往的围棋AI的原因是他将深度学习和强化学习结合在一起使用,再融合传统围棋AI主要使用的蒙特卡洛树搜索方法。要知道只用深度学习的方法去解决围棋问题在几年前已经有很多人在尝试,其效果却往往还不及当前最好的围棋AI(例如:Zen,Pachi等) 去年这家公司做的最引爆世界的事情是在Arcade Learning Environment中战胜了人类专家并且在nature上也发。这个环境是为了评估各种强化学习(Reinforc...阅读全文

博文 2016-03-11 18:00:02 xcwill

微服务实战(三):深入微服务架构的进程间通信

【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用API Gateway方式进行通信。在这篇文章中,我们将讨论系统服务之间如何通信。 简介在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运行在多台机器上的。一般来说,每个服务实例都是一个进程。因此,如下图所示,服务之间的交互必须通过进程间通信(IPC)来实现。 后面我们将会详细介绍IPC技术,现在我们先来看下设计相关的问题。 交互模式当为某一个服务选择IPC时,首先需要考虑服务之间如何交互。客户端和服务器之间有很多的交互模式,我们可以从两个维度...阅读全文

博文 2016-03-03 10:37:45 hokingyang

为golang程序使用pprof远程查看httpserver运行堆栈,cpu耗时等信息

pprof是个神马玩意儿? pprof - manual page for pprof (part of gperftools) 是gperftools工具的一部分 gperftools又是啥? These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler. 一个性能分析的工具,...阅读全文

博文 2015-03-21 19:00:01 zhangqingping

Go程序GC优化经验分享

作者:达达 来源:http://1234n.com/?post/yzsrwa 最近一段时间对《仙侠道》的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验。 游戏第一次上线的时候,大部分精力都投入在做cpuprof和memprof找性能瓶颈和内存泄漏上,没有关注过Go的GC运行情况。 有一次cpuprof里的scanblock调用所占的比例让我注意到Go的GC所带来的性能消耗,记得那份cpuprof里,scanblock调用占到49%。也就是说有一半的CPU时间浪费在了GC上。 于是我开始研究如何进行优化,过程中免不了要分析数据,经过一番搜索,我好到了GOGCTRACE这个环境变量。 用法类似这样: GOGCTRACE=1 ./my_go_program 2> log_file ...阅读全文

博文 2014-10-29 01:00:00 LvanNeo

快播王欣的新征程:AI和区块链公司获3000万美元融资

#文章来自全天候科技,原标题《快播王欣的新征程:AI和区块链公司获3000万美元融资》,作者张少华。9月3日,全国企业破产重整案件信息网披露的民事裁定书显示,深圳金亚太科技有限公司对深圳市快播科技有限公司提出的破产清算申请,被广东省深圳市中级人民法院裁定即日起生效。这一消息意味着,曾经红极一时的视频软件“快播”生命走到了尽头。然而,快播创始人王欣的创业之路并没有因此结束,自今年2月出狱后,他开始将目光聚焦人工智能、区块链等领域。企查查信息显示,王欣在今年3月创立了深圳市云歌人工智能技术有限公司(以下简称“云歌智能”),公司的法人彭鹏是王欣妻子,王欣是公司第一大股东,持股比例高达91.5%。9月5日,该公司获得了3000万美元融资,投资方包括贝塔斯曼亚洲投资基金和IDG资本。 云歌智能近期发布...阅读全文

博文 2018-09-06 13:34:40 众筹之家呀

使用 beego 搭建 web 应用之二

欢迎回到本系列的第二部分,在这我们将用Go的Beego这个web开发框架来加速开发。如果你错过了第一部分,我建议你去读一下,因为它是这一系列的基础。 在第一部分中,我们有了一个好的开始,通过安装Beego及命令行的Bee了解并实际使用了Beego,创建一个基本的项目,添加一个控制行为,创建了一个基本的视图模板,添加一个自定义路由并以学习如何使用请求参数为结尾。 在第二部分中,我们将进入更有趣的部分,构建一个结合数据库的Web应用,使用的是Sqlite3,还要研究一下模型、表单以及验证。我希望你已经准备就绪了,下面让我们一块愉快的走到最后。 Garfielt翻译于 3 个月 前 0人顶 顶 翻译的不错哦! 两步视图 你会注意到manage控制器里的几个函数,代码如下: manage.Layou...阅读全文

博文 2014-10-04 19:25:58 --zxp, Garfielt, 似年, AndyLam,

Go 语言运行时环境变量快速导览

文: http://dave.cheney.net/2015/11/29/a-whirlwind-tour-of-gos-runtime-environment-variables Go 语言运行时环境变量快速导览 介绍: Go Runtime除了提供:GC, goroutine调度, 定时器,network polling等服务外, 还提供其它一些工具设施,用于开启额外的调试输出, 或是改变Go Runtime自身的一些行为。这些工具设施由传给Go program的一些环境变量控制, 本文主要讲述它们。 GOGC GOGC 是Go Runtime最早支持的环境变量,甚至比GOROOT还早,几乎无人不知。GOGC 用于控制GC的处发频率, 其值默认为100, 意为直到自上次垃圾回收后heap...阅读全文

博文 2016-03-11 17:00:02 htyu_0203_39

golang 标准库io/ioutil,读取文件,生成临时目录/文件

1.读取目录 list, err := ioutil.ReadDir("DIR")//要读取的目录地址DIR,得到列表 if err != nil { fmt.Println("read dir error") return } for _, info := range list { //遍历目录下的内容,获取文件详情,同os.Stat(filename)获取的信息 info.Name()//文件名 info.Mode()//文件权限 info.Size()//文件大小 info.ModTime()//文件修改时间 info.Sys()//系统信息 if info.IsDir() == true { fmt.Println("是目录") } } 2.读取文件 data, err := iou...阅读全文

博文 2015-03-23 14:00:00 benlightning

golang项目test的写法

业务代码 package main import "fmt" func sum(a int,b int) int { return a+b } func main() { fmt.Println("hello test") } test测试用例 package main import ( "fmt" "testing" ) func TestSum(t *testing.T) { var a = 3 var b =4 res :=sum(a,b) fmt.Printf("%d 与%d之和:为%d",a,b,res) if res != 7{ t.Error("error") } } 每一个test文件必须import一个testing. test文件下每一个test case均必须以Test...阅读全文

博文 2019-08-05 21:32:38 厚朴酚XZ9lr

rabbitmq 客户端golang实战

rabbitmq消息模式 rabbitmq中进行消息控制的组建可以分为以下几部分: exchange:rabbitmq中的路由部件,控制消息的转发路径; queue:rabbitmq的消息队列,可以有多个消费者从队列中读取消息; consumer:消息的消费者; rabbitmq在使用过程中可以单独使用queue进行消息传递(例如celery就可以使用单个queue进行多对多的消息传递),也利用exchange与queue构建多种消息模式,主要包括fanout、direct和topic方式,模式的使用方式在此放一张图,不再此做详细解释。 我在使用的rabbitmq的过程中,主要是进行消息的广播及主题订阅: [producer] -> [exchange] ->fanout-> [queue ...阅读全文

博文 2018-04-26 23:33:05 hiker_urey

数据宝参展2017中国国际软件博览会

6月29日,第十二届中国国际软件博览会(以下简称:2017软博会)在北京展览馆开幕,本届软博会由工业和信息化部与北京市人民政府主办,国务院副总理马凯莅临软博会现场,工业和信息化部部长苗圩、北京市代市长陈吉宁、北京市经济和信息化委员会主任张伯旭等领导随行。 ![1.jpg](http://studygolang.qiniudn.com/170710/fa38bd5deaf78ea0c0e68dd52f16ba8a.jpg) 中共中央政治局委员、国务院副总理马凯出席并讲话 马凯指出,软件是信息网络的核心和灵魂。全球软件业正在步入加速创新、快速迭代、群体突破的爆发期,在促进世界经济发展和人类文明进步中将发挥越来越重要的作用。中国政府高度重视发展软件产业,制定了鼓励软件产业发展的重大政策,...阅读全文

golang的跨域

在使用golang做web的应用程序的时候,最容易碰到跨域问题了,跨域就是www.a.com访问www.b.com的文件。但是在浏览器里,为了安全起见,这样做是不允许的,这就是js的同源策略了。不懂的话google一下。1.golang做web的应用程序,不用使用像apache的web服务器,因为它自己可以构造一个web服务器。这样问题就来了,因为你使用js做前台,golang做后台,这样js传值的时候,是可以传到服务器的,并且是可以进行跨域访问的,因为golang构造的服务器与你前台就造成了跨域问题了。而ajax传值是传到服务器端的,并且可以进行跨域访问,所以我在开发的时候果断使用了它。 2而在golang接受传值之后,要返回信息给前台,这是golang里面就要设置可以进行跨域访了。设置就...阅读全文

博文 2015-10-22 19:00:02 helloworld20102010

用Golang的 http 包建立 Web 服务器

http 包建立 Web 服务器 package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数, 默认是不会解析的 fmt.Println(r.Form) //这些是服务器端的打印信息 fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k, v := range r.Form { fmt.Println("key:", k) ...阅读全文

博文 2014-12-30 01:00:03 kanglecjr

在golang中使用mgo多条件查询

今天被mgo凶残的语法折腾跪了 磨了1个多小时才搞出来 特此纪念: 一般做简单查询,是这样写的:

collection := mgodbcontroller.GetMdb().C(mgodbcontroller.USER_WALLET_GS_LOG)//获取操作对象 //根据用户手机号 倒序查询前100个 存入slice中 if err := collection.Find(&bson.M{"uphone": phonenum}).Sort("-initimesamp").Limit(100).All(&historys); err == nil { for i, _ := range historys { fmt.Println...阅读全文

博文 2016-01-26 21:00:02 u012210379

2018年全球十大突破性技术有哪些?

3月25日,科技之巅•麻省理工科技评论全球十大突破性技术峰会在北京召开,该峰会是全球最为著名的技术榜单之一,峰会围绕十大突破性技术在中国落地性最强,并对目前最受关注的领域进行深入解读。 2018年“全球十大突破性技术”分别是给所有人的人工智能、对抗性神经网络、人造胚胎、基因占卜、传感城市、巴别鱼耳塞、完美的网络隐私、材料的量子飞跃、实用型3D金属打印机以及零碳排放天然气发电。 **1. 给所有人的人工智能** 当人工智能技术与云技术相结合,将机器学习工具搬上云端,那么将有助于在医疗、制造、能源等行业更全面地推行人工智能技术,从而降低技术的使用难度和价格,极大地提高各产业的生产力。 **2. 对抗性神经网络** 形象地说,就是让两个 AI 系统通过玩“猫捉老鼠”游...阅读全文

golang连接activemq

config.ini 配置文件 [stomp] ;activemq的IP地址 host:192.168.7.85 ;activemq的端口 port:61613 ;activemq的队列 queue:/queue/bbg_ordercache [php] ;php的执行路径 phpbin:php.exe ;被执行的文件的路径 filepath:D:/jianguo/command/application/cli ;传递给被执行文件的参数 params:show main.go 代码文件: package main import ( "bytes" "fmt" "github.com/gmallard/stompngo" "github.com/unknwon/goconfig" "log" ...阅读全文

博文 2014-10-04 19:27:26 chen yuwen

百度云虚拟主机做网站有哪些优势?

众所周知百度是国内最大的搜索引擎、最大的中文网站。百度推出的云服务器、云虚拟主机、域名服务等质量可靠,对于客户的网站来说,能够保证访问的速度、稳定和安全。 百度云虚拟主机是最新的的容器技术、热迁移技术和百度生态能力提供的新一代网站主机服务,能够保证高性能、高可靠性、高安全性和高易用性等,即使是零基础的站长也可以轻松搞定网站的部署、发布、运维、推广,这无论是对企业还是个人网站来说都有非常大的作用。 ![虚拟主机.jpg](https://static.studygolang.com/180420/59974fa5a2ba4eec783545b7a6caebd8.jpg) 那么百度云虚拟主机的优势又有哪些? 高稳定 基于百度云的核心技术,故障服务方面可秒级热迁移...阅读全文

golang读取文件信息插入mongodb

这几日,在项目中顺手做了一个功能,读取手机归属地信息,然后插入mongodb 手机归属地格式 号码 省份 城市 卡型 区号 130001 江苏 常州 江苏联通 0519 代码如下 package main import ( "encoding/csv" "encoding/json" "fmt" "io" "labix.org/v2/mgo" "os" "runtime" ) /* 初始化配置 */ func init() { file, _ := os.Open("config.json") buf := make([]byte, 2048) n, _ := file.Read(buf) fmt.Println(string(buf)) err := json.Unmarshal(buf[...阅读全文

博文 2014-10-04 19:26:11 zsbfree

ECUG Con 邀您共议服务端开发最深度实践

![](http://ww4.sinaimg.cn/mw1024/7bb2bde1gw1f061fokhgpj20o00dd40x.jpg ) ECUG 全称为 Effective Cloud User Group (实效云计算用户组),由七牛云 CEO 许式伟于 2007 年发起,集结了一批具有高端视角并仍醉心于技术本身的同仁,共同关注云计算前沿技术的最新成果和分布式开发、运维的最佳实践。在过去的八年中, ECUG 社区每年都会组织一场全国性的 ECUG Con 大会,期间众多技术大神纷纷参与,他们或许在大众技术会议已经鲜少露面,但会在 ECUG Con 畅谈心得,共同奉献一场半公开的高规格技术分享盛会。 ECUG Con 发展历程 ![](http://cdn.huo...阅读全文

做区块链开发,德方智链怎么样?

全称:德方智链科技(深圳)有限公司成立时间:2018年5月8日招聘岗位:区块链开发工程师薪资待遇:30-50k招聘需求: 岗位职责 1. 负责基于HyperLedger Fabric的金融产品的设计和研发 2. 开发基于区块链的资产交易金融平台和基础框架 3. 跟踪金融领域相关技术变化,并应用于实际研发产品中。 任职资格: 1. 8年以上互联网及金融应用开发经验,或相关的工作经历; 2. 有2年以上Hyperledger Fabric商用项目的实际开发经验 3. 精通Hyperledger Fabric 和 它的底层架构 4. 熟悉共识算法或一致性算法者,如PoW、PBFT、PoS、DPos、RPCA、Raft熟悉各种数据结构和算法,对密码学,安全协议和加密算法有研究; 5. 熟悉 Linu...阅读全文

博文 2018-06-29 19:34:40 区块链产品官

Go语言开发分布式聊天室

声明 我是一个刚学go语言的菜鸟,还没有资格谈论什么技术分享,只是为了展示fooking的实际应用,同时把我用go写的聊天室代码贴出来供大家消遣,如果有入不了各位法眼的代码,望轻喷。该聊天室基于fooking,而业务代码是采用Go + Fastcgi。 完整的源代码在 https://github.com/scgywx/fooking/blob/master/example/chat/gateway.go,全代码200多行,去掉router部分代码,实际逻辑代码只有170来行,逻辑简单,功能强大。 详解 聊天服务器的入口main函数里有3个IP和端口配置,分别是Chat服务器、Router服务器和Redis服务器。 func main() { listener, _ := net.Liste...阅读全文

博文 2015-08-28 15:00:04 IM鑫爷

go的反射reflect访问struct结构注意问题

通过反射查看struct里面结构信息: type Point struct { X int Y string } func main() { po := Point{3, "ddd"} s := reflect.ValueOf(&po).Elem() for i := 0; i < s.NumField(); i++ { f := s.Field(i) fmt.Printf(" %s %v \n", f.Type(), f.Interface()) } } 输出: int 3 string ddd 但是把Point里面X和Y改成小写的x,y;再执行程序的时候f.Interface会报错: panic: reflect.Value.Interface: cannot return value ...阅读全文

博文 2015-07-23 17:00:01 webyh

快播创始人王欣归来:旧时P2P将披“区块链新衣”?

大概90后及以前的朋友们,都知道有这么一个段子:全中国人都欠快播一个会员。现在,优酷、爱奇艺、腾讯视频依靠“爆款自制剧+付费会员”,稳坐视频应用第一梯队,而当年的“看剧神器”——快播早已消失良久,渐渐被人淡忘。2014年,快播被乐视网举报涉嫌传播淫秽色情信息;2016年,快播传播淫秽物品牟利案宣判,快播公司罚一千万元,创始人王欣判刑3年6个月;2018年2月7日,王欣出狱。有人说,2018年谁的出狱最受关注,答案必定是王欣;还有人说,王欣出狱了,但快播已经不再,乐视也已不再,真是太讽刺了。 快播重新回归大众视野,在于9月3日全国企业破产重整案件信息网站的一则消息:深圳金亚太科技有限公司对深圳市快播科技有限公司提出的破产清算申请,即日起生效。9月4日,快播创始人王欣妻子彭鹏在微博上写道:快播选...阅读全文

博文 2018-09-19 12:34:40 OK情报局

用Go语言写一个Windows的外挂 (上)

本人在一家互联网金融公司上班,对于一家互联网金融公司,最基本的功能就是客户入金和出金,而出金的稳定性是很重要的,出金不畅容易导致投资人恐慌,本文讲的是出金,出金接口我们对接的是招商银行的银企直联系统,那么银企直连系统是一个什么样的程序呢? 没错,这个程序是运行在Windows上的,并且需要插入USBKey才能正常工作,这就意味着,不能简单的使用命令行进行运维管理。 看到这里,做运维的同学的内心应该和我一样是崩溃的。。 跟大家解释一下,这个服务是做什么的,大家可以把这个程序当成是我们的业务系统和招商银行沟通的信使,所有出金操作、查询操作都是通过这个信使来完成。 由于各种未知的原因,比如网络不稳定,或者USBKey插入时间过长产生了一些莫名其妙的错误,那么就需要人工去重启一下服务或重新登录一下账...阅读全文

博文 2017-05-22 03:00:36 ZhengXujin

Golang协程调度二:协程切换原理

---- *概述* ---- 协程是Golang中的轻量级线程,麻雀虽小五脏俱全,Golang管理协程时也必然会涉及到协程之间的切换:阻塞的协程被切换出去,可运行的协程被切换进来。我们在本章节就来仔细分析下协程如何切换。 *TLS* thread local storage: *getg()* goget()用来获取当前线程正在执行的协程g。该协程g被存储在TLS中。 *mcall()* mcall在golang需要进行协程切换时被调用,用来保存被切换出去协程的信息,并在当前线程的g0协程堆栈上执行新的函数。一般情况下,会在新函数中执行一次schedule()来挑选新的协程来运行。接下来我们就看看mcall的实现。 ------ *调用时机* ------ *系统调用返回* 当执行系统调用的...阅读全文

博文 2017-12-07 05:45:58 丁凯