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

go优雅升级/重启工具调研

对于一个常驻、高访问量的网络服务来说,升级/重启时,一个难以忽视的问题是避免对正在通信的客户端造成影响。因此大家一直在寻求一种优雅、零宕机的升级/重启方案(seamless reload/upgrade)。在工程师们的日常实践中,尝试了不同的方案。各方案的核心都是fork-exec流程,其不同的区别就是在这个过程中,如何优雅的传递活跃的网络连接,如何避免新建连接失败,以及处理这个过程中的错误和如何回退。 方案选型 首先先简单介绍一些方案1: SO_REUSEPORT 多进程 在HAProxy 1.5.11时,采用该方案。首先可以对监听 socket 启用SO_REUSEPORT,这样可以使得多个监听 socket 共享同一个地址,这样可以使得我们能同时启动多个进程来监听同一个地址。在升级或重...阅读全文

百度云推送——Go语言实现类库

#快速开始 ###下载安装 go get github.com/mnhkahn/BaiduYunPush ###创建文件pushtest.go package main import ( "fmt" "github.com/mnhkahn/BaiduYunPush" ) var apikey = "**************************" var seckey = "******************************" var method = "POST" var url_base1 = "channel.api.duapp.com/rest/2.0/channel/channel" func main() { push := BaiduYunPush.New(ap...阅读全文

go调用windows命令

调用Windows命令 这是我的第一个go语言脚本,标记一下。 package main import ( "fmt" "log" "os/exec" "golang.org/x/text/encoding/simplifiedchinese" ) type Charset string const ( UTF8 = Charset("UTF-8") GB18030 = Charset("GB18030") ) func ConvertByte2String(byte []byte, charset Charset) string { var str string switch charset { case GB18030: var decodeBytes, _ = simplifiedch...阅读全文

博文 2019-07-07 23:32:42 大鹏之动

PHP面试题2019年奇虎360面试题和答案解析

一、单选题(共29题,每题5分)1.以下代码 a.php 输出的结果是?a.php 的代码如下:​ b.php的代码如下:​A、foo in aB、什么也不输出C、报错D、foo in b参考答案:C答案解析:答案是C 想让大家思考的是、为什么在b里边使用了return、依然可以找到foo函数的定义、并且报错 Cannot redeclare foo() ? 因为php是在运行之前先解释执行、为避免表述不精确、附上文档原文:Note that because PHP processes the file before running it, any functions defined in an included file will still be available, even if t...阅读全文

博文 2019-10-10 20:51:02 a993089249

PHP面试题2019年搜狐面试题和答案解析

一、单选题(共27题,每题5分)1.阅读下面PHP代码,并选择输出结果( )​A、0B、1C、2D、3参考答案:D答案解析:static属性常驻内存2.PHP单例模式操作描述错误的是?A、单例模式第一次实例会被建立以后执行可以直接使用B、需要一个保存类的唯一实例的静态成员变量C、构造函数和克隆函数必须声明为私有的D、必须提供一个访问这个实例的公共的静态方法参考答案:A答案解析:PHP中,所有的变量无论是全局变量还是类的静态成员,都是页面级的,每次页面被执行时, 都会重新建立新的对象,都会在页面执行完毕后被清空,这样似乎PHP单例模式就没有什么意义了, 所以PHP单例模式只是针对单次页面级请求时出现多个应用场景并需要共享同一对象资源时有意义3.下面那个不是mysql存储引擎的锁类型?A、表锁B...阅读全文

博文 2019-10-10 20:45:54 a993089249

PHP面试题2019年滴滴出行工程师面试题和答案解析

一、单选题(共30题,每题5分)1.下列关于PHP垃圾回收的说法,错误的是?A、开启/关闭垃圾回收机制可以通过修改php配置实现B、可以在程序中使用gc_enable() 和 gc_disable()开启和关闭。C、PHP中的垃圾回收机制,会大幅度提升系统性能。D、开启垃圾回收机制后,针对内存泄露的情况,可以节省大量的内存空间,但是由于垃圾回收算法运行耗费时间,开启垃圾回收算法会增加脚本的执行时间。参考答案:C答案解析:PHP中的垃圾回收机制,仅仅在循环回收算法确实运行时会有时间消耗上的增加。但是在平常的(更小的)脚本中应根本就没有性能影响。2.树结构分为?A、二叉树和完全二叉树B、满二叉树和二叉树C、有序树和无序树D、btree和搜索树参考答案:C答案解析:有序树和无序树。3.数据项与数据...阅读全文

博文 2019-10-10 21:31:06 a993089249

2019年新浪PHP工程师面试题和答案解析

一、单选题(共28题,每题5分)1.以下语句输出的结果是什么? A、3$a\$a3336B、33\$a3336C、$a$a\$a3336D、3$a\$a333$a$a参考答案:A答案解析:\是转义的意思2.包含文件方式,下列哪个是错误的?A、includeB、include_onceC、requireD、import参考答案:D答案解析:import是CSS的引入方式。3.三个人独立地破译一份密码,已知各人能译出的概率分别为1/5,1/4,1/3,则密码能被破译的概率为 ?A、1/60B、3/5C、59/60D、13/30参考答案:B答案解析:题目中,至少有一人能破译密码和三人都不能破译密码是对立事件。所以至少有一人能译出的概率=1-三人都没译出的概率=1-(1-1/5)(1-1/3)(1-...阅读全文

博文 2019-09-29 17:33:29 aside section ._1OhGeD

如何学习c语言 零基础20天学会C语言

C语言开发 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。在这里插入图片描述 一、要读就读好书,否则不如不读 所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。 大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。加下群731871503这...阅读全文

博文 2019-01-17 17:47:34 wenpeng231

PHP面试题2019年京东工程师面试题和答案解析

一、单选题(共28题,每题5分)1.Apache与Nginx大访问下性能描述正确的是?A、Apache所采用的epoll网络I/O模型非常高效B、Nginx使用了最新的kqueue和select网络I/O模型C、Apache进程执行PHP、输出HTML都得干,占用的资源多D、nginx不可以做反向代理服务器参考答案:C答案解析:1、Apache所采用的select网络I/O模型非常低效 2、Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型 3、Apache进程干的事情多:执行PHP、输出HTML都得干,占用的资源就多(CPU、内存)2.下列哪种PHP运行模式在PHP5.3之后不再支持?A、CGIB、FASTCIGC、ISIPAD、CLI...阅读全文

博文 2019-10-10 21:42:41 a993089249

golang之array

golang使用array表示固定大小的数组,使用slice表示动态数组。 package main import "fmt" func main() { var a = [5]int{2,3,5,7,11} fmt.Printf("type of array: %T\n", a) fmt.Printf("address of array: %p\n", &a) fmt.Printf("address of arrar[0]: %p\n", &a[0]) s := a[:] fmt.Printf("slice = %v, len = %d, cap = %d\n", s, len(s), cap(s)) fmt.Printf("address of slice: %p\n", &s) fmt...阅读全文

博文 2017-12-03 15:00:01 gattaca

PHP面试题2019年滴滴出行工程师面试题和答案解析

一、单选题(共30题,每题5分)1.下列关于PHP垃圾回收的说法,错误的是?A、开启/关闭垃圾回收机制可以通过修改php配置实现B、可以在程序中使用gc_enable() 和 gc_disable()开启和关闭。C、PHP中的垃圾回收机制,会大幅度提升系统性能。D、开启垃圾回收机制后,针对内存泄露的情况,可以节省大量的内存空间,但是由于垃圾回收算法运行耗费时间,开启垃圾回收算法会增加脚本的执行时间。参考答案:C答案解析:PHP中的垃圾回收机制,仅仅在循环回收算法确实运行时会有时间消耗上的增加。但是在平常的(更小的)脚本中应根本就没有性能影响。2.树结构分为?A、二叉树和完全二叉树B、满二叉树和二叉树C、有序树和无序树D、btree和搜索树参考答案:C答案解析:有序树和无序树。3.数据项与数据...阅读全文

博文 2019-10-10 20:55:35 a993089249

golang

Golang 优化之路——自己造一个日志轮子 据我观察,基本没有人在用 Golang 原生的 log 包写日志。今天就讲一下如何通过200行代码封装一个功能完善的日志包。 Golang:使用自定义模板发送邮件 几周前,我开始工作于一个证券投资组合网站。虽然我只能使用 React 完成整个网站,但我决定使用 Go 来创建一个可以处理某些任务(例如发送 email)的 API 服务器,相信这是一个很好的做法。我其中的一个页面是一个 contact 页面,目前看起来像这样: 我想使用专门为… GO 语言学习资源整理 作者整理的 Go 语言的学习资源,包括几个方面:1)在线学习教程:比较系统全面,非常适合新手入门学习;2)书籍;3)很多比较好的 Go 语言资源总结文档整理;4)Go 语言中文社区; ...阅读全文

博文 2017-12-12 09:04:42 掘金

Go语言实践技巧(8)——channel类型

声明channel时,<-表明方向: chan T // 能收发`T`类型变量 chan<- float64 // 只能发送 float64 类型变量 (write-only) <-chan int // 只能接收 int 类型变量 (read-only) <-同最左边的channel结合: chan<- chan int // 同 chan<- (chan int) chan<- <-chan int // 同 chan<- (<-chan int) <-chan <-chan int // 同 <-chan (<-chan int) 参考资料: How to understand “<-chan” in declaration...阅读全文

博文 2017-06-24 19:20:06 肖楠

Golang参考-20170603更新

一.环境安装MacOS:https://storage.googleapis.com/golang/go1.8.3.darwin-amd64.tar.gzhttps://storage.googleapis.com/golang/go1.8.3.darwin-amd64.pkgtar -xvf go1.8.3.darwin-amd64.tar.gz-C /usr/local/goexport PATH=$PATH:/usr/local/go/bin编辑:leeco:go leeco$ cat aa.gopackage mainimport"fmt"func main() {fmt.Println("Thisis a line!!")}运行:leeco:go leeco$ go run aa....阅读全文

博文 2017-06-03 16:08:03 NooSense

深入内核架构--内存屏障

简介 之前在看golang gc、java gc及volatile 可见性的时候,经常会看到内存屏障,但是对于其基本原理似懂非懂,也对于内存屏障是如何保障多个CPU之间的数据可见性保持好奇,网上的博客基本上只是停留于表面,导致我产生了几个误区: 1. CPU之间内存数据可见性问题是由于cpu cache没及时同步数据导致的。 2. 内存屏障为啥能通过防止指令重排序,就能让cpu cache及时同步数据? 不过最近发现这只是表面现象!所以今天写一下这篇文章来彻底介绍一下内存屏障 CPU cache 虽然内存可见性问题不是直接由cpu cache导致的,还是与cpu cache是有密切联系的,所以我们先来简单介绍一下cpu cache。 在我之前的文章中有提到内核对于小块内存是通过slab来管理...阅读全文

golang 开发笔记

golang 开发笔记 1.Go环境配置 1.1 go安装 1.2 目录结构 1.3 Go命令 1.4 工具 1.5 版本控制(dep) 2 语言基础 2.1 hello word! 2.2 数组 2.3 切片 2.4 map 2.5 struct 2.6 常量和变量 2.7 流程控制 3 字符处理 3.1 判断字符类型 3.2 类型转换 3.3 json处理 3.4 字符串处理 4 包(package) 4.1 自定义包(package) 4.2 import 5 数据库 5.1 mysql(go-sql-driver/mysql) 项目地址:https://github.com/guyan0319/... 参考资料:https://golang.org/doc...阅读全文

PHP面试题2019年腾讯工程师面试题和答案

一、单选题(共29题,每题5分)1.PHP执行的时候有如下执行过程:Scanning(Lexing) - Compilation - Execution - Parsing,其含义分别为:A、将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、顺次执行Opcodes、将表达式编译成OpocdesB、将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、顺次执行Opcodes、将Tokens转换成简单而有意义的表达式C、将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、将表达式编译成Opocdes、顺次执行OpcodesD、将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、将Tok...阅读全文

博文 2019-10-10 21:24:28 a993089249

[译]参考资料: 地道的GO代码

目录 [−] Accept interfaces, return concrete typesCode Review CommentsEffective GoGo PatternsGo ProverbsGo and the Zen of PythonGo by ExampleIdiomatic Doc Comments: Document Your Function, Not Your Function SignatureIdiomatic GoIdiomatic Go ReadabilityIdiomatic Go TestsIdiomatic Go Trickshttps://medium.com/@matryer/idiomatic-go-tricks-62abea5c50fbItty...阅读全文

博文 2017-07-08 10:18:12 smallnest

语句系列之 defer

一、defer 关键字工作原则 1. A deferred function's arguments are evaluated when the defer statement is evaluated. func a() { i := 0 defer fmt.Println(i) i++ return } defer 函数中的变量 i 在 defer 函数被定义的时候就已经明确,值为0。随后 defer 之外的 i++ 并不会影响 defer 函数打印的,所以打印结果为:0。 2.Deferred function calls are executed in Last In First Out order after the surrounding function returns. f...阅读全文

博文 2018-03-09 21:34:42 玉帝老大爷

Golang精编100题-搞定golang面试

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! Golang精编100题能力模型 级别模型初级 primary熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码符合CleanCode规范; 中级 intermediate能够独立完成用户故事的开发和测试;能够嗅出代码的坏味道,并知道如何重构达成目标; 高级 senior能够开发出高质量高性能的代码;能够熟练使用高级特性,开发编程框架或测试框架; 选择题1. 【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC 2. 【初级...阅读全文

博文 2018-11-16 15:31:33 fdgugfv

Go泛型提案

Go泛型特性已经被讨论了多次了1, Andrew Gerrand现在把这个提案加入到了Go的issue列表中2,并标记为Go2标签。当然这不代表着要将泛型加入到Go中,而是演示一个完整的提案应该是什么样子。 以下是提案的内容: Proposal: Go should have generics Author: Ian Lance Taylor Created: January 2011 Last updated: April 2016 Discussion at https://golang.org/issue/15292 Abstract Go should support some form of generic programming.Generic programming enabl...阅读全文

博文 2017-02-08 12:53:35 smallnest

19年第41周:Go语言 微信小程序获取手机号 -加密数据解密算法-AES-128-CBC

一、简介 获取手机号 获取微信用户绑定的手机号,需先调用 wx.login 接口。 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。 注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 二、参考官方Python示例复写Golang版本 NOTE: 微信官方没有给Golang版本,但给了C++,PHP,Node,Python版本。这里选用Python来作为参考 python版本和Golang版本对比 三、参考资料 微信小程序开发指南-获取手机号 微信小程序开发指南-加密数据解密算法-官方案例下...阅读全文

博文 2019-10-07 19:32:44 aside section ._1OhGeD

不带模式和填充来获取AES算法-JAVA与Golang的互通

重要: 在Java中不带模式和填充来获取AES算法的时候,其默认使用AES/ECB/PKCS5Padding!!! 1 Java的AES加解密 如果把Cipher.getInstance("AES");中的"AES"换成"AES/ECB/PKCS5Padding",效果是一样的。 1.1 加密操作 /** * Description: 加密操作
* * @param data 待加密数据 * @param key 密钥 * @return 加解密后的信息 * @throws Exception
*/ public static byte[] encrypt(byte[] data, byte[] key) throws Exception { Key secretKey ...阅读全文

博文 2019-03-25 02:34:38 clawhub

golang ldap

配置: addr:ip:389 bindUserName: cn=admin,dc=simon,dc=com bindPassword:xxxxx searchDn: dc=simon,dc=com 实现 参考:https://github.com/go-ldap/ldap import ( "fmt" "github.com/go-ldap/ldap" ) type LDAPConfig struct { Addr string BindUserName string BindPassword string SearchDN string } type LDAPService struct { Conn *ldap.Conn Config LDAPConfig } func NewLDAP...阅读全文

博文 2019-03-29 03:34:39 csimonj

Go语言实践技巧(6)——map key的选择

The map key can be a value from any built-in or struct type as long as the value can be used in an expression with the == operator. Slices, functions, and struct types that contain slices can’t be used as a map key. map key可以使用任何内置类型或结构类型的值,只要这个值可以使用在==表达式中。slice,函数,和包含slice的结构体不能用作key。 参考资料: Go in Action...阅读全文

博文 2017-06-24 19:19:52 肖楠

2019年京东PHP工程师面试题和答案解析

一、单选题(共28题,每题5分)1.Apache与Nginx大访问下性能描述正确的是?A、Apache所采用的epoll网络I/O模型非常高效B、Nginx使用了最新的kqueue和select网络I/O模型C、Apache进程执行PHP、输出HTML都得干,占用的资源多D、nginx不可以做反向代理服务器参考答案:C答案解析:1、Apache所采用的select网络I/O模型非常低效 2、Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型 3、Apache进程干的事情多:执行PHP、输出HTML都得干,占用的资源就多(CPU、内存)2.下列哪种PHP运行模式在PHP5.3之后不再支持?A、CGIB、FASTCIGC、ISIPAD、CLI...阅读全文

博文 2019-09-30 20:32:45 aside section ._1OhGeD

Golang 中的指针

指针的定义 A pointer is a value that points to the memory address of another variable. 指针是一个指向另一个变量内存地址的值。 示例 1 package main import ( "fmt" ) func main() { a := 200 b := &a fmt.Println("a -->", a) fmt.Println("*b -->", *b) fmt.Println("&a -->", &a) fmt.Println("b -->", b) *b++ fmt.Println("a -->", a) fmt.Println("*b -->", *b) } 变量 a 的值是 200,变量 b 的值就是变量 ...阅读全文

go-读取输入参数

前言 编写程序的时候,需要读取用户输入的参数来做一些事情。在golang里面有两个库可以来制作这块的功能。 flag flag包,加载输入信息。官方两个例子: // Example 1: A single string flag called "species" with default value "gopher". var species = flag.String("species", "gopher", "the species we are studying") // Example 2: Two flags sharing a variable, so we can have a shorthand. // The order of initialization is undef...阅读全文

博文 2020-01-31 18:32:41 阿彪2020

Go语言面试题分享:(选择题10道)(1)

Go语言面试题分享:(选择题10道)1、下面属于关键字的是( )A. Func B. def C. struct D. class参考答案:AC2、定义一个包内全局字符串变量,下面语法正确的是 ( )A. var str string B. str := "" C. str = "" D. var str = ""参考答案:AD3、通过指针变量 p 访问其成员变量 name,下面语法正确的是( )A. p.name B. (*p).name C. (&p).name D. p->name参考答案:AB4、关于接口和类的说法,下面说法正确的是( )A. 一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口B. 实现类的时候,只需要关心自己应该提供哪些方法,不用再纠结接口需要拆得多细...阅读全文

博文 2019-11-27 13:43:27 zhouzhou2018

Go语言实践技巧(7)——value receiver和pointer receiver

Value receiver: func (u user) fun1() { .... } Pointer receiver: func (u *user) fun2() { .... } Value receiver操作的是值的拷贝,而pointer receiver操作的是实际的值。 用pointer去调用value receiver的方法,实际的操作是: (*p).fun1() 而用value去调用pointer receiver的方法,实际的操作是: (&v).fun2() 参考资料: Go in Action...阅读全文

博文 2017-06-24 19:19:59 肖楠

Swarmkit笔记(12)——swarmctl创建service时指定资源限制

swarmctl创建service时可以指定CPU和memory资源限制: # swarmctl service create --help Create a service Usage: swarmctl service create [flags] Flags: ...... --cpu-limit string CPU cores limit (e.g. 0.5) --cpu-reservation string number of CPU cores reserved (e.g. 0.5) ...... --memory-limit string memory limit (e.g. 512m) --memory-reservation string amount of reserv...阅读全文

博文 2017-06-25 14:08:59 肖楠

Go语言面试题分享:(判断题13道)(5)

Go语言面试题分享:(判断题13道)数组是一个值类型( )参考答案:T2、使用map不需要引入任何库( )参考答案:T3、指针是基础类型()参考答案:F4、interface{}是可以指向任意对象的Any类型( )参考答案:T5、Golang不支持自动垃圾回收( )参考答案:F6、Golang支持反射,反射最常见的使用场景是做对象的序列化( )参考答案:T7、Golang可以复用C/C++的模块,这个功能叫Cgo( )参考答案:F8、通过成员变量或函数首字母的大小写来决定其作用域( )参考答案:T9、对于常量定义zero(const zero = 0.0),zero是浮点型常量( )参考答案:F10、对变量x的取反操作是~x( )参考答案:F11、golang支持goto语句( )参考答案:...阅读全文

博文 2019-11-27 14:21:20 zhouzhou2018

Go语言面试题分享:(选择题11道)(4)

Go语言面试题分享:(选择题11道)1、关于函数返回值的错误设计,下面说法正确的是( )A. 如果失败原因只有一个,则返回boolB. 如果失败原因超过一个,则返回errorC. 如果没有失败原因,则不返回bool或errorD. 如果重试几次可以避免失败,则不要立即返回bool或error参考答案:ABCD2、关于异常设计,下面说法正确的是( )A. 在程序开发阶段,坚持速错,让程序异常崩溃B. 在程序部署后,应恢复异常避免程序终止C. 一切皆错误,不用进行异常设计D. 对于不应该出现的分支,使用异常处理参考答案:ABD3、关于channel的特性,下面说法正确的是( )A. 给一个 nil channel 发送数据,造成永远阻塞B. 从一个 nil channel 接收数据,造成永远阻塞...阅读全文

博文 2019-11-27 14:20:40 zhouzhou2018

Go语言学习

一 应用场景描述 为什么想着要学习一下Go语言?现在越来越多有名的开源项目都是使用Go语言开发的,所以了解一下Go语言的基础知识还是很有必要的。平时的工作中主要使用Shell和Python来编写运维脚本。之前已经看过无数次关于Go语言的介绍和分享帖子了。对于Go语言这种性能仅次于C和C++的后起之秀,同时又比Python这种胶水语言性能提高不少。如果以后工作中如果有需要处理性能方面的问题就可以使用Go来编写。二 使用Go语言编写的项目 目前比较出名的使用Go语言编写的项目有: Docker 开源容器 Open Falcon 小米的开源监控工具 Codis 豌豆荚的Redis解决方案,Codis的好几个组件都是用Go语言编写的 Ected 和ZooKeeper同类工具 Kubernetes 谷...阅读全文

golang[38]-区块链- 生成比特币地址

生成比特币地址123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293package mainimport ( "crypto/sha256" "golang.org/x/crypto/ripemd160" "fmt" "math/big" "encoding/hex")//base58编码var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUV...阅读全文

博文 2018-12-13 00:35:46 jonson_jackson

mac下编译go-ethereum

macos: 10.14.4 下载go-ethereum源码,按照文档执行命令编译: $ make all 报错:fatal error: 'stdlib.h' file not found /usr/include 查看xcode是否安装: $ xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates $ xcode-select -p /Applications/Xcode.app/Contents/Developer $ brew config Clang: 10.0 build 1001Gi...阅读全文

博文 2019-03-29 18:34:38 lansheng228

Go项目工程管理及目录结构

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:src 包含项目的源代码文件;pkg 包含编译后生成的包/库文件;bin 包含编译后生成的可执行文件。可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.3.3 windows/amd64)1. 创建一个库文件创建一个库文件a.go并保存在scr目录的一个子目录下面。package myfunc import "fmt" func Afunc(str string) { fmt.Println("a.go is package mufunc.") fmt.Println(str) }这时候目录结构如下: |-- ...阅读全文

Go语言面试题分享:(选择题11道)(2)

Go语言面试题分享:(选择题11道)1、关于布尔变量b的赋值,下面错误的用法是( )A. b = trueB. b = 1C. b = bool(1)D. b = (1 == 2)参考答案:BC2、关于switch语句,下面说法正确的有( )A. 条件表达式必须为常量或者整数B. 单个case中,可以出现多个结果选项C. 需要用break来明确退出一个caseD. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case参考答案:BD3、关于main函数(可执行程序的执行起点),下面说法正确的是( )A. main函数不能带参数B. main函数不能定义返回值C. main函数所在的包必须为main包D. main函数中可以使用flag包来获取和解析命令行参数参...阅读全文

博文 2019-11-27 14:18:47 zhouzhou2018

Golang 参考资料

知识图谱 https://www.processon.com/view/link/5a9ba4c8e4b0a9d22eb3bdf0 基础 https://gobyexample.com/ 开发环境搭建 基础知识 类型与变量 常量与运算符 控制语句 数组 map 函数 function 结构 struct 方法 接口 反射 并发 入门学习笔记1 https://www.jianshu.com/p/c48f484c9831 入门学习笔记2 https://www.jianshu.com/p/33c03a38d0f8 Golang 新手可能会踩的 50 个坑 https://www.cnblogs.com/276815076/p/8583589.html Mysql Golang Mysql笔记 ...阅读全文

博文 2019-01-27 23:34:42 baboon

golang笔记之指针使用

Choosing a value or pointer receiver There are two reasons to use a pointer receiver. The first is so that the method can modify the value that its receiver points to. The second is to avoid copying the value on each method call. This can be more efficient if the receiver is a large struct, for example. package main import ( "fmt" "math" ) type Ver...阅读全文

博文 2019-05-07 13:35:10 月下独酌100

golang[40]-区块链-wif倒推出私钥

wif倒推出私钥123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150...阅读全文

博文 2018-12-14 00:35:43 jonson_jackson

使用aws sqs 做缓冲队列(go)

背景 作为一位刚进公司的小白,参与到项目的第一个任务是为操作记录的存储增加消息队列,为什么我们要这么做呢?原因如下:在现有系统中我们直接将用户的操作记录增加到mongodb数据库中,但是在我们的系统出现峰值的时候,发现mongodb受不了,为此我们要做到削峰这个功能,按照惯例我们想到了使用消息队列,同时由于我们在项目中普遍采用aws的云服务,为此我们采用了aws的消息队列。 注意事项 aws sqs 收费是按照请求次数收费所以要尽量使用批量操作 aws sqs 的消费上线是12000次,最多允许12000个在传递的数据 aws sqs 容量无限大 aws sqs 的批量操作的上限是10条数据(毕竟是按次数收费) aws sqs并行取数据的过程中可能会出现重复,我们利用数据库的ID来去重,注意...阅读全文

博文 2019-10-26 16:32:45 zhuchenshu

曹大谈内存重排

写这篇文章的原因很简单,公司内部的 Golang 社区组织了第一期分享,主讲嘉宾就是我们敬爱的曹大。这个必定是要去听的,只是曹大的讲题非常硬核,所以提前找他要了参考资料,花了 1 个小时提前预习,才不至于在正式分享的时候什么也不懂。当然了,这也是对自己和主讲者的尊重。所有的参考资料都在文章最后一部分,欢迎自行探索。 在我读曹大给我的中英文参考资料时,我发现英文的我能读懂,读中文却很费劲。经过对比,我发现,英文文章是由一个例子引入,循序渐进,逐步深入。跟着作者的脚步探索,非常有意思。而中文的博客上来就直奔主题,对于第一次接触的人非常不友好。 两者就像演绎法和归纳法区别。国内的教材通常是演绎法,也就是上来先讲各种概念、原理,再推出另一些定理,比较枯燥;国外的教材更喜欢由例子引入,步步深入,引人入...阅读全文

博文 2019-06-17 09:02:38 Stefno

golang[42]-区块链-go实战比特币默克尔树

go实战比特币默克尔树123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114package mainimport ( "crypto/sha256" "encoding/hex" "fmt")func min(a int,b int) int{ if(a>b){ return b } ...阅读全文

博文 2018-12-14 00:35:13 jonson_jackson

golang中如何计算代码的运行时长

1、 定义一个time变量,表示开始时间 startTime := time.Now() 2、 计算时长 time.Since(startTime) 如果打印time.Since(startTime)的话,结果会类似如下显示:1h2m3s 3、 转化为秒 cost := int(time.Since(startTime) / time.Second) 参考资料: https://blog.csdn.net/liu2012huan/article/details/78522750 https://stackoverflow.com/questions/48686508/time-in-seconds-with-time-sinc...阅读全文

博文 2019-10-25 11:32:44 aside section._1OhGeD

跟我一起学Golang:Map

概念Golang一种内置结构,形式,类似Java中的HashMap或者Python中的dict(字典)。其中key是可比较的,不能为slice,因为slice没有实现比较操作。另外需要注意一点就是map是引用类型,作为参数存在副作用。操作以及例子如何创建使用make,语法格式:make(map[key-type]val-type)可以在声明的时候初始化:map[key-type]val-type{key:value, ...}如何修改赋值:name[key]=val删除: delete(name, key)如何访问直接使用下标:name[key]带有校验型: val, ok := name[key], ok是false表示key对应的值不存在例子:// Maps are...阅读全文

golang[33]-blockchain-hash

哈希函数有三个特点:输入无限的字符会输出给我们固定长度的字符(即便是图书馆里面所有的数据)输入的函数的微小变化最后都会带来哈希函数返回值的巨大变化。哈希函数的特点是不能根据哈希函数的返回值倒推出我们输入的数据是什么。同样的,我们在计算哈希函数之前,也不能够判断出数据回输出什么样的哈希值。用途数字指纹数字签名数字防篡改go实现hash123456789101112131415161718192021222324252627func main(){ //第一种方式 sum:= sha256.Sum256([]byte("jonson love olaya")) fmt.Printf("%X",sum) //第2种方式 h:=sha256.New() h.Write([]byte("jonson ...阅读全文

博文 2018-12-13 00:35:45 jonson_jackson

golang[43]-blockchain-serialize

真实比特币序列化1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374package mainimport ( "bytes" "encoding/binary" "log" "fmt" "encoding/hex" "crypto/sha256")//将类型转化为了字节数组func IntToHex(num int32) []byte{ buff := new(bytes.Buffer)//binary.LittleEndian 小端模式 err:= binary.Wr...阅读全文

博文 2018-12-13 23:35:58 jonson_jackson