路漫漫其修远兮
吾将上下而求索

go

go学习:channel 源码分析

这部分看的是 golang1.2 的源码(其实是 3 年前看的,最近又拿出来复习整理了下),C语言实现的。 如果只是为了学习,而不是为了实际参与项目的开发,还是建议阅读低版本源代码,因为更纯粹些。 越是新的版本,里面掺杂的周边逻辑越多,比如...

go学习:切片和数组注意事项

先抛出几个问题 声明一个 slice 并赋值为 nil, 如 var slice []int = nil,此时 len(slice) 的运行结果是什么? func(arr []int) 和 func(arr [10]int) 两个函数内部都...

go学习:反射-飞雪无情

https://www.flysnow.org/2017/06/13/go-in-action-go-reflect.html https://www.flysnow.org/2017/06/25/go-in-action-struct-t...

go学习:判断某个struct是否实现interface

一般检查某个struct是否实现interface的时候用的,因为golang里的接口实现不是侵入式,所以这样可以在编译的时候知道是否实现了自己想要的接口 package main type Reader in...

go学习:io 包的使用方法

前言 在 Go 中,输入和输出操作是使用原语实现的,这些原语将数据模拟成可读的或可写的字节流。为此,Go 的 io 包提供了 io.Reader 和 io.Writer 接口,分别...

go学习:ssh远程执行命令

用到的库:golang.org/x/crypto/ssh(隔墙有代理https://goproxy.cn) 1. 发送指令执行 session.Run() package main import (  &nbs...

go学习:sync.pool使用

大纲 使用姿势 初始化 Pool 实例 New 申请对象 Get 释放对象 Put 思考 为什么用 Pool,而不是在运行的时候直接实例化对象呢? sync.Pool 是并发安全的吗? 为什么 sync.Pool 不适合用于像 s...

go学习:go module私有仓库拉取

由于golang的开发,多多少少会引入一些被*的依赖,因此在使用go module管理时,我们都喜欢设置代理,这样不仅能够访问到被*的依赖库,还能加快依赖的下载速度。目前国内的不错的go-module代理地址:https://goproxy...

go学习:grpc-helloworld

RPC是什么 在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用...