Go包管理的探索与实践

  • 引言:刚学Go没多久,但是很快我就发现了Go的一个特别坑爹的地方 —— 包管理。当然不只是GFW的问题,更多的是有的时候,每个项目使用的包的版本并不是完全一致的,而Go无法做到这一点。虽然Go1.5之后加了vendor的特性,但是我仍然觉得不够。

Mehr lesen

Git设置全局ss代理

前提是本机已经开启了ShadowSocks,这里推荐用一枝红杏,比较稳定,而且速度也可以。
https://my.yizhihongxing.com/aff.php?aff=1936

Mehr lesen

关于Goroutine Channel Select 的用法和理解

声明

转载请注明本文地址,感谢 :)

了解进程、线程、协程

本文不详细解释这三个名词的意思,下面有一篇文章,不懂的同学可以参考看看。

Goroutine的使用

  • Goroutine 奉行通过通信来共享内存,而不是共享内存来通信
  • 使用goroutine很简单,只需要用到一个关键字go,我们用一段代码来示例一下如何使用go关键字

Mehr lesen

使用[git format-patch]生成git补丁

引言:场景是这样的,之前我拥有权限的一个git仓库,后来由于某些原因不再具有管理该git仓库的权限。但是由于在失去权限后,我在本地对该项目进行了一些代码的优化,并且需要更新到远程仓库的master上。思前想后,最后用了git提供的format-patch命令。
实际上git提供了两种简单的patch方案,一是用git diff生成的标准patch,第二种是git format-patch生成的git专用patch。本文使用的是第二种。

Mehr lesen

【Go学习笔记】13、反射 reflect

反射reflection

反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地
反射使用TypeOf和ValueOf函数从接口中获取目标对象信息
反射会将匿名字段作为独立字段(匿名字段本质)
想要利用反射修改对象状态,前提是interface.data 是settable,即pointer-interface
通过反射可以动态调用方法

Mehr lesen

升级到Xcode8.3以后,解决ReactiveCocoa的各种报错

前言:Xcode8.3不再支持swift2.3,开始全面支持swift3

使用了ReactiveCocoa库的项目怎么办?

Mehr lesen

【Go学习笔记】12、接口 interface

接口interface

  • 接口是一个或多个方法签名的集合
  • 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为Structural Typing

Mehr lesen

【Go学习笔记】11、方法method

方法method

  • Go中虽没有class,但依旧有method
  • 通过显示说明receiver来实现与某个类型的组合

Mehr lesen

【Go学习笔记】10、结构struct

结构struct

  • Go中的struct与c中的struct非常相似,并且Go没有class
  • 使用typestruct{} 定义结构,名称遵循可见性规则

Mehr lesen

【Go学习笔记】9、函数func

函数func

  • Go函数不支持嵌套、重载和默认参数
  • 但是支持一下特性

    • 无需声明原型、不定长度变参、多返回值、命名返回值参数

Mehr lesen