Go日志,打印源码文件名和行号造成的性能开销

日志中打印源码文件名和行号,是非常实用的功能,尤其是开发阶段的debug日志,可以快速通过日志找到对应的源码位置。 Go标准库中的package log也支持打印源码文件名和行号,打开方式是设置以下两个标志中的任意一个: Llongfile // full file name and line number: /a/b/c/d.go:23 Lshortfile // final file name element and line number: d.go:23. overrides Llong...阅读全文

Segmentfault 2020-06-02 09:32:33 就想叫yoko

自学转行至程序员经验分享

这是本人真实的转行经历,其实早就想整理出一篇文章了,无奈前几天工作任务繁重,自己可支配时间较少。发这篇文章的目的,也是给大家提供一些参考,避免一些坑。文章内的观点只代表我个人的看法,不绝对。如果有其他的问题,欢迎在文章的评论区一起讨论。:) 背景介绍   我先介绍一下我自己,以及我是如何萌生转行至程序员的这个想法的。   我是18年毕业于某985的机械设计制造及其自动化专业,了解这个专业的应该都知道这是个大坑。如果读研的话,会好很多。而我在校学习期间整天只知道玩,学习成绩倒数,临近毕业也不想考研...阅读全文

Segmentfault 2020-06-02 07:32:35 SyntaxError

23. 一篇文章 说清楚 Go语言里的函数

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代...阅读全文

掘金 2020年05月31日 王一白

Go 中没有引用传递

先说清楚,在 go 中没有引用变量,所以更不存在什么引用传值了。 ## 什么是引用变量 在类 C++ 语言中,你可以声明一个别名,给一个变量安上一个其他名字,我们把这称为引用变量。 ```c #include <stdio.h> int main() { int a = 10; int &b = a; int &c = b; printf("%p %p %p\n", &a, &b, &c); // 0x7ffe114f0b14 0x7ffe114f0...阅读全文

Go语言中文网 2020-05-31 12:42:06 Jun10ng

重新学习 slice By Dave Cheney

## 数组 Arrays 每次讨论到 Go 的切片问题,都会从这个变量是不是切片开始,换句话说,就是 Go 的序列类型,在 Go 中,数组有两种关联属性。 1. 数组拥有固定的大小;`[5]int` 即表明是一个有 5 个 `int` 的数组,又与 `[3]int` 相区分开。 2. 他们是值类型。思考下面这个例子。 ```go package main import "fmt" func main() { var a [5]int b := a b[2] ...阅读全文

Go语言中文网 2020-05-31 12:33:17 Jun10ng

Go 语言中命名规范——如何简短却更具描述性

> 在计算机科学与技术中,有两件事情最难,第一是缓存无效,第二就是给一些东西命名 —— Phil Karlton 上面的话可不是一个笑话。写代码很容易,但是阅读起来却很痛苦。你是否有想知道一个变量具体指什么或者某个包的具体含义是什么这种类似的经历?这就是为什么我们需要一些规则和约定。 不过,约定虽然能够让我们的生活变得更轻松,但是也容易被高估和滥用。设置一些合理的命名约定和规则非常重要,不过盲目的遵循它也可能带来很多弊端。 在这篇文章里面,我将介绍在[Go](https://g...阅读全文

Go语言中文网 2020-05-31 12:21:49 JYSDeveloper

Go:并发以及调度器亲和

![由 Renee French 创作的原始 Go Gopher 作品,为“ Go 的旅程”创作的插图](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20200102-Go-Concurrency-And-Scheduler-Affinity/Illustration.png) 将 Goroutine 从一个 OS 线程切换到另一个线程需要一定开销,并且,如果这种操作过于频繁的话会降低应用性能。无论如何...阅读全文

Go语言中文网 2020-05-31 12:07:25 dust347

golang 时间和日期

//当前时间 t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) fmt.Println(t.Year(), int(t.Local().Month()), t.Day()) //时间戳10位 秒 fmt.Println(time.Now().Unix()) //时间戳13位 毫秒 fmt.Println(time.Now().UnixNano() / 1e6) //时间戳转时间 sec := time.Now().Unix(...阅读全文

简书 2020-05-31 09:32:47 对方正在输入_5723

golang之JWT实现

什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。 直白的讲jwt就是一种用户认证(区别于session、cookie)的解决方案。 出现的背景 众所周知,在jwt出现之前,我们已经有session、cookie来解决用户登...阅读全文

Segmentfault 2020-06-01 15:32:34 guyan0319

Golang下的unicode与字符编码

背景:在我们使用 Golang 进行开发过程中,总是绕不开对字符或字符串的处理,而在 Golang 语言中,对字符和字符串的处理方式可能和其他语言不太一样,比如 Python 或 Java 类的语言,本篇文章分享一些 Golang 语言下的 Unicode 和字符串编码。 Go 语言字符编码 注意: 在 Golang 语言中的标识符可以包含 "任何 Unicode 编码可以标识的字母字符"。 被转换的整数值应该可以代表一个有效的 Unicode 代码点,否则转换的结果就将会是 "�",即:一个仅...阅读全文

掘金 2020年05月30日 BGBiao

golang中接口的面向对象(二)--继承

在上一节 golang中接口的面向对象(一)--多态特征中,我们学习了galang中的多态,参考https://blog.51cto.com/91235688/2499405 继承那么这一节中,我们继续用上一节中的例子,来学习继承。我们修改上一节中的示例代码,如下所示:type geometry interface { sayHi() //geometry 只有一个方法sayHi()}type rect struct { geometry //这里使用匿名字段,使得rect 继承了 geomet...阅读全文

51CTO博客 2020-05-30 10:47:05 roddger

常用缓存技巧

简介 在项目中,大家经常会遇到处理高并发的情况,缓存是应对高并发的有效手段之一。这篇文章简单介绍一下常用的缓存手段。当然,使用缓存有一个前提:数据不是实时变更的。方法一、CDNCDN一般用来做静态资源的缓存,但是稍微进行修改,便可以用来缓存动态接口的返回。当请求资源在CDN不存在时,请求会到回源机上,在回源机的Nginx上,根据路由规则,将请求转发到不同服务,返回结果会存在到CDN上。如下图所示: Nginx实现upstreamfs.com_backend {server127.0.0.1:80...阅读全文

简书 2020-05-30 21:32:51 shidawuhen

第三十三章: Golang WebSocket Vue构建通信

1. 目标 使用 Golang 编写一个WebSocker 服务端 能接受客户端的WebSocket连接 启动服务器时接收命令行参数 能响应客户端数据 模式一 : webSocket 回音模式 模式二 : 图灵机器人聊天模式 使用Golang 编写一个WebSocket 客户端 使用 Vue 编写一个WebSocket 客户端 能和服务端通信 能主动获取WebSocket当前状态 能主动关闭WebSocket连接 能主动重新连接WebSokct连接 能显示WebSocket通信数据 2. 项目目...阅读全文

简书 2020-05-30 21:32:49 captain89

Golang下的Unicode和字符串

背景: 在我们使用Golang进行开发过程中,总是绕不开对字符或字符串的处理,而在Golang语言中,对字符和字符串的处理方式可能和其他语言不太一样,比如Python或Java类的语言,本篇文章分享一些Golang语言下的Unicode和字符串编码。 Go语言字符编码 注意: 在Golang语言中的标识符可以包含 " 任何Unicode编码可以标识的字母字符 "。 被转换的整数值应该可以代表一个有效的 Unicode 代码点,否则转换的结果就将会是 "�",即:一个仅由高亮的问号组成的字符串值。...阅读全文

简书 2020-05-30 21:32:48 BGbiao