golang的官方博客的源代码，改了一下拿来自己用了