博客迁移

博客迁移

Roy

断断续续写博客居然有8年时间了啊……

5年前,博客从wordpress迁移到了hexo+github静态页面,用着不错之后就一直懒得折腾。但五一假期想写博客发现安装nodejshexo3版本怎么也搞不定,看报错提示似乎是某些依赖库已经不支持老版本了,干脆一不做二不休整体替换成hugo+Mainroad主题。要不电脑里又得装python又得装golang还得装nodejs,也是麻烦。

Golang小技巧

Roy

下划线的妙用

大多数情况下,下划线_都用于忽略函数返回值的情况。最近查看authboss这个开源库的代码时,发现这样一种用法:

struct User {
    ...
}

var (
    assertUser   = &User{}
    assertStorer = &MemStorer{}
    _ authboss.User            = assertUser
    _ authboss.AuthableUser    = assertUser
)

新手可能会犯的50个Golang错误

Roy

原文,向原作者表示感谢。这里省略了一些无关的介绍说明以及过于简单的说明,直接看代码就懂了。

左花括号不能单独一行

在大多数语言中你可以随便放置花括号的位置,但go语言不一样,你可以理解为为go会自动注入分号(automatic semicolon injection):

错误代码:

package main

import "fmt"

func main()  
{ //error, can't have the opening brace on a separate line
    fmt.Println("hello there!")
}

编译错误:

/tmp/sandbox826898458/main.go:6: syntax error: unexpected semicolon or newline before {

正确代码:

package main

import "fmt"

func main() {  
    fmt.Println("works!")
}