ruby -docFile::exist?
では、およびのドキュメントエントリFile::exists?
が異なるセマンティクスで複製されます。1つのエントリは、がディレクトリであるtrue
場合に戻ると言います。file_name
もう1つは、がファイルのtrue
場合に返されると言いfile_name
ます。
どちらのエントリも正しくないと思います。file.c
どちらのメソッドも、を使用して実装されているようです。これは、渡された値がIOの場合、または文字列の場合rb_file_exist_p
に呼び出そうとしているようです。とは成功とエラーの両方に戻り、これはに戻され、ブール結果に変換されます。それは私には思われるfstat()
stat()
fstat()
stat()
0
-1
rb_file_exist_p
- コードを読みやすくする方法は2つあります。セマンティックの違いはありません
- どちらも実際にはファイルが存在するかどうかには関係しませんが、ファイル、ディレクトリ、ソケット、FIFOなどのファイルのようなアイテムが存在するかどうかに関係します。
- おそらくドキュメントは、メソッドがファイルのようなセマンティクスを持つものが存在するかどうかを呼び出し元に伝えると言うことができますが、より具体的なテストはそれが実際に何であるかを教えます:例えば、ディレクトリ?、ファイル?、ソケット?等
メソッドの違い(の欠如)についての私の理解は正しいですか、そしてドキュメントへの変更を提案する価値がありますか?