你知道如何在Go语言中愉快的使用环境变量吗?

1. 前言 在开发中,我们经常会使用到环境变量,Go语言默认也提供了提取环境变量的内置方法,比如使用 syscall.Getenv(key) 方法,或者是对其的封装 os.LookupEnv(key) 这个方法,都能使我们便捷的获取到环境变量。但是通过内置方法获取到的环境变量返回的是字符串类型的,往往还需要我们对其进行类型转换,为了避免重复工作,今天给大家介绍一款支持将环境变量解析到结构体,并进行类型转换的库。 本文将从库介绍、原理分析、源码解析、不足四方面展开。 2. env库介绍 2.1 安...阅读全文

掘金 2020年06月29日 文科僧程序猿

这个大学生,抢先go2实现了go的泛型

betterGo 天下苦golang久矣! 今亡亦死,举大计亦死,等死,死国可乎 背景 然而生活中,接收了没有泛型,似乎也挺美好的样子,直到某一天,你发现你又要对slice进行删除操作了,明明你前几天才做过的,明明... 泛型可以不用,但泛型库函数不能没有,我不想再写for了。美好的Map, Reduce,uniq...,你们在哪里? 于是,betterGo诞生了 Implement golang generic by code generating like C++ template (mo...阅读全文

掘金 2020年06月29日 HioHio

go调试利器-delve

大家好,我是小栈君,好久没更新文章了,确实抱歉!因为工作变动等原因导致最近拖更严重,但是请大家放心,我会一如既往的为大家带来自己的原创文章,供大家相互交流和学习,一起成长。今天小栈君带来的分享是go语言的调试利器DELVE。 关于delve工具的介绍,这里简单给大家介绍一下。delve在go项目及应用的开发中可以用来追踪程序中的异常代码,也可以通过打日志的方式追查问题,但是更重要也是非常厉害的一点,就是delve可以直接分析程序执行的情况。这一点在后期或线上的问题排查中无疑是提供了一个非常大的便...阅读全文

Segmentfault 2020-07-02 17:32:44 IT干货栈

Go从0开发(1)

go学习笔记go安装包 下载​设置 GOPATH在 GOPATH 下新建三个文件pkg bin src 三个文件​go env 查看go环境变量开发编辑器VS codeGolandpackage main func main() { println("你好") }Go编译go buildgo build -o mian.exe交叉编辑 可以部署到其他平台然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。Mac 下编译 Linux 和 Window...阅读全文

Go语言中文网 2020-06-29 18:53:41 jwcode

python与go语言对比(不断更新。)

1.数据类型 python Number(数值型) int -- 整型 float -- 浮点型 bool -- 布尔型 complex -- 复数 String(字符串) List(列表) Tuple(元组) Sets(集合) Dict(字典) Go 整型 浮点型 float32 float64 复数 complex64 complex128 字符串 字符串内部使用UTF-8编码,使用双引号 字符串转义: 多行字符串: 使用 `` 示例: 字符串常用操作: 修改字符串: 要修改字符串,需要先将...阅读全文

51CTO博客 2020-06-29 11:33:01 o凤舞九天o

Textile托管Powergate实例-企业能访问托管的Filecoin和IPFS资源

今天,我们很高兴宣布基于Filecoin的Textile的一个重要里程碑:托管Powergate实例。Powergate托管帐户是Textile的Filecoin服务三部曲中的第三部分,包括我们的自助式Powergate部署,Textile Bucket对Filecoin存储的支持以及现在托管的Powergate基础结构。什么是Powergate?如果您是我们博客或Powergate项目的新手,则Powergate是基于Filecoin(通过Lotus)和IPFS 构建的多层存储系统。该系统提供...阅读全文

简书 2020-06-29 16:41:38 IPFS星小妹

为何选用IPFS构建Berty—防审查的消息传递应用程序

欢迎来到本博客系列的第一部分,它将深入了解有关Berty及其工作原理的所有知识!在这些文章中,我们将向您介绍Berty的内部工作原理,回答一些常见问题,并解释一些我们最大的决定。在本系列的第一部分中,我们将重点介绍为什么选择使用IPFS构建Berty。 我们的最终目标 如您所知,Berty的目标是构建一个防审查的消息传递应用程序,以保护您的隐私。您的消息传递应用程序可能会保证将消息保持“私密”,对吗?不幸的是,这不是那么简单! 主流消息传递应用程序存在三个主要问题: · 用户交换的所有消息都会通...阅读全文

简书 2020-06-29 16:40:06 IPFS星小妹

golang FileServer

package main import ( "log" "net/http" ) func main() { mux := http.NewServeMux() mux.Handle("/", http.FileServer(http.Dir(""))) mux.HandleFunc("/index", fileHandler) server := &http.Server{ Addr: ":8080", Handler: mux, } if err := server.ListenAndSer...阅读全文

简书 2020-06-29 16:33:38 哆啦在这A梦在哪

QUIC/HTTP3 协议简析

从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来。 HTTP、HTTP2 和 HTTP3 先和大家来回顾一下 HTTP 的历史,看看 HTTP3 相比 HTTP、HTTP2 都有哪些改进和升级的地方。 HTTP VS HTTP2 HTTP 和 HTTP2 的差别 多路复用:多路复用时,多文件传输有时只需维护一个 TCP 连接。如果是 HTTP1 协议下,每份资源的传输对应一个 TCP 连接,一般最多只能...阅读全文

简书 2020-06-29 10:33:40 又拍云

ARTS 第7周 | LeetCode 最低公共祖先 | Golang Worker Pool 原型 | 编程之禅

ARTS ARTS 是陈浩(网名左耳朵耗子)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。 每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。 本周内容 本周的 ARTS 你将看到: 经典题「树中节点的最低公共祖先」 一个 Golang 多队列的 worker-dispatcher 原型 关于编程的方法论 Algorithm 这周的算法题是「树中节点的最低公共祖...阅读全文

Segmentfault 2020-07-02 10:32:33 casmo澎湃哥

golang http2长链接问题

前几天项目中遇到了一个长链接假死问题,服务端和client端采用的是h2c长连接。服务端作为sidecar部署在k8s的pod里面,当滚动升级pod的时候,client端和老的pod的连接一直存在,即使老的pod已经被删除了。(client和网关是一个东西) 发现问题 突然有一天前端同事说调用全部503(内部服务不可用),赶紧去环境上查看log,发现网关发送到后段的请求全部超时。用netstat查看连接状态也是没问题的。 网关端状态图 去新建的pod上查看,发现并没有连接,因此网关端的连接并不是...阅读全文

简书 2020-06-29 04:32:52 凹大猫的鱼

再次了解CMS垃圾回收

前言 之前学习JVM垃圾回收时,主要是过了一遍垃圾收集算法,比如复制算法,标记-清除算法,标记-整理算法,在此基础上可以增加分代,每代采取不同的回收算法,以提高整体的分配和回收效率。然后过了一遍JVM中的垃圾收集器,比如Serial、Parallel Scavenge、Parallel New、CMS、G1等。 自认为垃圾收集就是根据GC Root标记所有可达的对象,然后把所有没有标记的对象清除就ok了。是不是很简单。事实上垃圾收集也就是这么一回事,但是很多时候说起来简单,做起来却会出现很多问题...阅读全文

简书 2020-06-29 04:32:50 懒癌正患者

Go 语言中的错误处理机制

Go 语言中的错误处理机制 一、错误处理机制引出 在默认情况下,当发生错误后(panic) ,程序就会退出(崩溃.) 如果我们希望:当发生错误后,可以捕获到错误,并进行处理,保证程序可以继续执行。还可以在捕获到错误后,给管理员一个提示(邮件,短信。。。) 这里引出我们要将的错误处理机制 二、说明 Go 语言追求简洁优雅,所以,Go 语言不支持传统的 try…catch…finally 这种处理。 Go 中引入的处理方式为:defer, panic, recover 这几个异常的使用场景可以这么简...阅读全文

掘金 2020年06月28日 十安辰

golang http2长链接

前几天项目中遇到了一个长链接假死问题,服务端和client端采用的是h2c长连接。服务端作为sidecar部署在k8s的pod里面,当滚动升级pod的时候,client端和老的pod的连接一直存在,即使老的pod已经被删除了。(client和网关是一个东西) #发现问题 突然有一天前端同事说调用全部503(内部服务不可用),赶紧去环境上查看log,发现网关发送到后段的请求全部超时。用netstat查看连接状态也是没问题的。 ![网关端状态图](https://upload-im...阅读全文

Go语言中文网 2020-06-28 19:57:32 wenxuwan

Golang构建一个文件资源服务

利用 Golang 构建一个简单的静态资源服务,在应用调试时还是非常有用的,核心的方法使用 http.FileServer 来实现,不过原生 golang 的文件服务时不支持隐藏文件目录列表的,这样可能会带来一些安全隐患; 今天我就介绍下通过 Orange框架通过路由绑定静态资源目录实现一个文件服务; 第一步: 在 GOPATH/src 目录下创建一个目录,然后目录中创建main.go文件; 文件内容: package main import "gitee.com/zhucheer/orange...阅读全文

简书 2020-06-28 18:33:04 施主6

用25种编程语言来输出“Hello Word”,你喜欢哪种?

“Hello World !” ——每个程序员在开始学习任何编程语言时编写的第一个程序。“Hello World !”被认为是几乎所有计算机语言中最简单的程序之一,它向用户输出或显示“Hello, World !”。它通常是用于工作程序的编程语言的基本语法的范例,用来向入门程序员介绍编程语言。从本文中,您将学习如何用25种不同的著名编程语言编写您的第一个程序——“Hello World !”程序。编写你的第一个计算机程序“Hello World” 1、Bash Bash是一个sh兼容的命令语言解...阅读全文

简书 2020-06-28 16:36:37 智圭谷科技

NebulaGraph初次相遇

一个完整的 Nebula 部署集群包含三个服务,即 Query Service,Storage Service 和 Meta Service。每个服务都有其各自的可执行二进制文件,这些二进制文件既可以部署在同一组节点上,也可以部署在不同的节点上。一、元数据服务层 Meta Service Meta Service集群采用 leader / follower 架构,Leader 由集群中所有的 Meta Service 节点选出后对外提供服务,Followers 处于待命状态并从 leader 复...阅读全文

简书 2020-06-28 16:35:53 风南子

[DIY]给word中的汉字批量加、修改拼音(word全篇加拼音)(新版golang程序)

给word docx文件批量加拼音,秒出结果。 相比VBA版本的改进: 1.快;(之前一个比较大的文档,VBA程序跑了接近整3天,现在用golang的两三秒就处理完了;) 2.中文字符不需要手动添加到排除集合中了;(VBA程序中不知道怎么区分,只能手动编写符号集合,遇到有漏掉的就会出错;) 3.直接一个运行程序,没有其他依赖安装项;(VBA程序需要安装python库,或者其他汉字转成拼音的程序) 另附一个修改docx拼音的程序。 运行程序网盘下载链接(链接: https://pan.baidu....阅读全文

简书 2020-06-28 16:35:09 姜附