0
Вопрос для новичков здесь, но в Ruby, почему File.file?() И File :: directory?() Вызывается по-разному?File.file?() И File :: directory?()
Вопрос для новичков здесь, но в Ruby, почему File.file?() И File :: directory?() Вызывается по-разному?File.file?() И File :: directory?()
File::file?
и File.file?
являются эквивалентными, равно File::directory?
и File.directory?
. Оба являются методами, принадлежащими к классу, и могут быть вызваны либо с синтаксисом.
Я использовал справочную ссылку http://www.tutorialspoint.com/ruby/ruby_input_output.htm, поэтому я спросил, просто чтобы убедиться, что у меня что-то не хватает. Когда я попробовал File.directory?() Из командной строки (irb), он, похоже, не обрабатывался, а File.file?(). Но это было потому, что я избегал цитат, не зная об этом, оставив его висящим (например, File.directory?("/Users/ ")). Понял, спасибо. – inyourcorner
В Ruby нет такой вещи, как метод класса. Ruby знает только один вид метода: обычные методы экземпляра. * Каждый * метод на * каждый * объект может вызываться с помощью '::' вместо '.'. Единственным исключением являются методы, начинающиеся с буквы верхнего регистра, поскольку в этом случае '::' будет интерпретироваться как разрешение области для констант, а не вызов метода. (На самом деле, если быть точным, вы также не можете вызывать методы в Ruby. Вы можете отправлять сообщения только, и система может (или не может) вызывать метод в ответ на это сообщение.) –
@ Jörg: получил, отредактировал :) Спасибо! – Matchu