2011-01-28 3 views

ответ

2

File::file? и File.file? являются эквивалентными, равно File::directory? и File.directory?. Оба являются методами, принадлежащими к классу, и могут быть вызваны либо с синтаксисом.

+0

Я использовал справочную ссылку http://www.tutorialspoint.com/ruby/ruby_input_output.htm, поэтому я спросил, просто чтобы убедиться, что у меня что-то не хватает. Когда я попробовал File.directory?() Из командной строки (irb), он, похоже, не обрабатывался, а File.file?(). Но это было потому, что я избегал цитат, не зная об этом, оставив его висящим (например, File.directory?("/Users/ ")). Понял, спасибо. – inyourcorner

+1

В Ruby нет такой вещи, как метод класса. Ruby знает только один вид метода: обычные методы экземпляра. * Каждый * метод на * каждый * объект может вызываться с помощью '::' вместо '.'. Единственным исключением являются методы, начинающиеся с буквы верхнего регистра, поскольку в этом случае '::' будет интерпретироваться как разрешение области для констант, а не вызов метода. (На самом деле, если быть точным, вы также не можете вызывать методы в Ruby. Вы можете отправлять сообщения только, и система может (или не может) вызывать метод в ответ на это сообщение.) –

+0

@ Jörg: получил, отредактировал :) Спасибо! – Matchu

Смежные вопросы