go的encoding/base64有四种编码方式: 编码方式 说明 StdEncoding 常规编码 URLEncoding URL safe 编码,相当于替换掉字符串中的特殊字符,+ 和 / RawStdEncoding 常规编码,末尾不补 = RawURLEncoding URL safe 编码,末尾不补 = package main import ( "encoding/base64" "fmt" ) func main() { msg := …
go的encoding/base64有四种编码方式: 编码方式 说明 StdEncoding 常规编码 URLEncoding URL safe 编码,相当于替换掉字符串中的特殊字符,+ 和 / RawStdEncoding 常规编码,末尾不补 = RawURLEncoding URL safe 编码,末尾不补 = package main import ( "encoding/base64" "fmt" ) func main() { msg := …
因为PC端的业务要做apple登录,需要获取用户的appleid,调用苹果API的时候要生成jwt格式的client_secret,go语言的实现如下: 1 创建client_id,授权文件等,具体创建方式参考:https://www.icrazycode.com/archives/1257 2 将下载的 p8 证书文件转 pkcs8 pem openssl pkcs8 -nocrypt -in AuthKey_U7BAXSKVQ7.p8 -out SubscriptionKey.pem openssl pkcs8…
APP登录授权完成后,上传userID和identityToken给服务端,服务端进行JWT验证 服务端是用GO语言处理的,下面为GO语言的实现 package appleid import ( "crypto/rsa" "encoding/base64" "encoding/json" "errors" "github.com/golang-jwt/jwt/v5" "io/ioutil" &qu…
Go+ 过去都发生了什么?我们现在正在做什么?以及我们未来会怎样继续去进行迭代? 7 月 10 日,一年一度的 ECUG Con 2022 在线上圆满举行。许式伟作为七牛云 CEO、ECUG 社区发起人、Go+ 语言发明人,为大家来带了《Go+ 演进之路》的主题演讲。以下内容根据演讲实录整理。 大家好,欢迎来到 ECUG Con 2022。ECUG 大会从 2007 年开始,到今天已经第 15 个年头了,我基本每年都会为大家带来演讲。继上届大会之后,今年我想和大家继续分享 Go+ 的相关内容,聊聊 Go+ 的…
函数是基于功能或者逻辑进行聚合的可复用的代码块。将一些复杂的、冗长的代码抽离封装成多个代码片段,即函数,有助于提高代码逻辑的可读性和可维护性。不同于Python,由于 Go lang是编译型语言,编译之后再运行,所以函数的定义顺序无关痛痒。 函数声明 在 Go lang里,函数声明语法如下: func function_name(parameter_list) (result_list) { //函数逻辑 } 这里使用function的简写形式 func关键词,后面依次接 function_name(函数名) , …
我的设计模式之旅,本程序实现观察者模式。使用C#、Go两门语言分别进行实现。程序创建一个全局游戏死亡事件通知,5个玩家、1个Boss,当任意一方死亡时,在场存活者都能收到阵亡者的消息。 编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。 程序介绍 本程序实现观察者模式。使用C#、Go两门语言分别进行实现。程序创建一个全局游戏死亡事件通知,5个玩家、1个Boss,当任意一方死亡时,在场存活者都能收到阵亡者的消息。 观察者模式 ----------游戏回合开始---------- 最终BOSS 击杀 二…
需求 前段时间面试,被问到设计模式。说实话虽然了解面向对象、多态,但突然被问到设计模式,还要说清解决什么问题,自己是有些懵的,毕竟实习主要工作是在原项目基础进行CRUD,自己还是没有深度思考,所以只能简单介绍自己知道的简单工厂模式等。趁着回家这段假期,充电学习一下Go设计模式! 学习资料 B站搜索一下,突然发现刘丹冰老师更新了设计模式课程。因为前面学习Go基础也是通过书籍和刘丹冰老师的视频学习。 设计模式链接如下: https://www.bilibili.com/video/BV1Eg411m7rV 由于家里网络…
我的设计模式之旅,使用 Golang 实现。本节实现代理模式。小明很喜欢同班的雪怡,但是过于腼腆的他不敢当面说。打算通过手机(代理)跟雪怡表白! 编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。 程序介绍 本程序实现代理模式。小明很喜欢同班的雪怡,但是过于腼腆的他不敢当面说。打算通过手机(代理)跟雪怡表白! 小明给雪怡发了个表情包 小明祝雪怡生日快乐 小明对雪怡说做我女朋友吧 雪怡对小明说我愿意! 程序代码 proxy.go package main import "fmt" …
先行定义,延后执行。不得不佩服Go lang设计者天才的设计,事实上,defer关键字就相当于Python中的tryexceptfinally结构设计中的finally语法块,函数结束时强制执行的代码逻辑,但是defer在语法结构上更加优雅,在函数退出前统一执行,可以随时增加defer语句,多用于系统资源的释放以及相关善后工作。当然了,这种流程结构是必须的,形式上可以不同,但底层原理是类似的,Golang 选择了更简约的defer,避免多级嵌套的try except finally 结构。 使用场景 操作系统资源在…
我的gRPC之旅。本节简单介绍gRPC的四种通信模式。简单通信模式、服务端流通信模式、客户端流通信模式、双向流通信模式。 借助gRPC我们可以实现不同进程间通信模式(也称RPC风格)。 repeated 关键字 message Order { string id = 1; repeated string items = 2; string description = 3; float price = 4; string destination = 5; } 使用repeated表明这个字段在消息中可以重复出现多次,…