本文首发于我的Github博客
本文记录了作者在使用goland提供的提取方法(Extract Method)功能时,由于...interface{}
的类型问题而遭遇到的bug和一点感悟,简单来说:
- 可变长的参数会被goland的Extract Method转化为切片(slice),比如
...interface{}
会被转化为[]interface{}
- 由于
interface{}
的特殊性,需要额外注意
bug的产生
在代码中有如下片段
func f(payload ...interface{
}) {
for _, p := range payload {
// do something
}
}
现在想要将循环提取出来,作为一个方法,在goland中可以直接选中文本然后Extract Method,但是结果是这样的
func f(payload