摘要:
直接上代码: package main import "fmt" func main() { var num *int32 var i int32 = 5 // 针对*int32的,先创建一个i类型,然后取i的地址,赋值给*int32 num = &i fmt.Println(" >:\t", nu 阅读全文
摘要:
HTTPS 协议栈与 HTTP 的唯一区别在于多了一个安全层(Security Layer)—— TLS/SSL,SSL 是最早的安全层协议,TLS 由 SSL 发展而来,所以下面我们统称 TLS。 OkHttp 用一个 enum 类型来表示 TLS 协议的不同版本,可以看到最早的版本是 SSLv3 阅读全文
摘要:
https://imququ.com/post/optimize-tls-handshake.html#toc-3 阅读全文
摘要:
Go 语言的字符使用UTF-8 编码 英文字母 1个 字节, 汉子 3个 字节 golang的字符称为rune,等价于C中的char,可直接与整数转换 var c rune='a' var i int =98 i1:=int(c) fmt.Println("'a' convert to",i1) c 阅读全文
摘要:
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有 阅读全文
摘要:
在使用 Git 的进行代码版本控制的时候,往往会发现在 log 中出现 "Merge branch 'master' of ..." 这句话,如下图所示。日志中记录的一般为开发过程中对代码的改动信息,如果出现过多例如上述描述的信息会造成日志的污染。 阅读了一些外文的博客,下面就来一探究竟。 产生原因 阅读全文
摘要:
公司以前的项目没有支持go mod,现在许哟啊支持go mod,就涉及到如何指定版本号的问题。 找到项目最后一次提交的commit id k可以看到该项目的最后一次commit id为: 510aa62 在go mod 的require里面引入项目的last commit id 由于不知道哪个版本号 阅读全文
摘要:
对于make slice而言,有两个概念需要搞清楚:长度跟容量。 容量表示底层数组的大小,长度是你可以使用的大小。 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请一个底层数组,拷贝这边的值过去,把原来的数组丢掉。也就是说,容量的用途 阅读全文