🌚
io/ioutilパッケージの使用を見つけるlinterを作った
Go1.16のアップデートでio/ioutilパッケージがdeprecatedになり、io/ioutilパッケージの機能がosとioパッケージにも移行されました。
io/ioutilパッケージはこれまで通りに動作するのですが、新しいコードにはioとosパッケージの新しい定義を使用することが推奨されています。
そこでio/ioutilパッケージの使用を見つけてくれるlinterを作成しました。
使い方
インストール
go install github.com/le0tk0k/noioutil/cmd/noioutil@latest
io/ioutilパッケージを使用していると、
package main
import (
"fmt"
"io/ioutil"
)
func main() {
bytes, _ := ioutil.ReadFile("foo.go")
fmt.Println(string(bytes))
}
以下のように検知されます。
$ go vet -vettool=$(which noioutil) main.go
# command-line-arguments
./main.go:5:2: "io/ioutil" package is used
既存のコードからio/ioutilパッケージの使用をなくしたい時や、io/ioutilパッケージの使用を未然に防ぎたい時はぜひこのlinterを使ってみてください。
終わりに
ささっと作ったので何かあればissueかPRお願いします。
io/ioutilがdeprecatedになったことについての記事
Discussion