🌚
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