メインコンテンツへスキップ

Go Proposal Weekly Digest

Go言語のproposal更新を毎週お届け

新機能

Plan 9でもsyscall.Errno型が定義され、error interfaceを実装するようになった

syscall

この項目の注釈は AI により生成されており、誤りを含む場合があります。

概要

Plan 9(GOOS=plan9)上でも、他のプラットフォームと同様にsyscall.Errno型が定義され、errorインターフェースを実装するようになった。Plan 9のシステムコールは実際にはErrorString値を返すため、このErrno型がPlan 9上でこのパッケージから返り値として使われることはない。この型は、syscall.Errnoを参照するポータブルなコードが、Plan 9向けにビルド制約(build constraint)を書かなくてもビルドできるようにするために定義されたものである。

実装解説

src/syscall/syscall_plan9.goErrno型定義uintptrのエイリアスで、Error/Temporary/Timeoutの3メソッド(同ファイル l=34-36)を持ち、errorインターフェースを満たす。定義直前のコメント(l=25-31)にある通り、これはGo 1のAPI契約(api/go1.txtpkg syscall, type Errno uintptr)により存在が保証されているため追加されたものであり、Plan 9のシステムコール自身が返すエラー値は同ファイルで別途定義されているErrorStringである。

関連リンク