2014-10-24 5 views
5

Я пытался научиться scala. Одна вещь, которую я заметил, - это качество документов. Они, кажется, пропустили множество методов. Это намеренно? Я чувствую, что у меня что-то не хватает, потому что они не могут быть такими плохими.Почему методы scala docs отсутствуют?

Например:

Blog post on reading files with scala. Сообщение в блоге рекомендует использовать метод scala.io.Source.fromFile (..), чтобы прочитать файл. Он предоставляет итератор. Выглядит очень приятно. Я хочу лучше понять класс, поэтому я перехожу в scala docs по адресу scala.io.Source.

Нет, где в документах он показывает метод для scala.io.Source.fromFile (..). Когда я иду в свою IDE, он пытается автозаполнять Source.fromFile (..), и он даже работает в коде.

Это случилось со мной раньше, когда я пытался использовать базу данных scala api. Я что-то упускаю? Есть ли секретная кнопка, которая подтягивает этот метод? Разве я всю свою жизнь слепым, не осознавая этого? Или скаладоки действительно так плохо?

+0

Имейте в виду, потому что это такой сдвиг парадигмы, что новичкам следует путать с различием модуля/класса. JavaDoc наконец-то поддерживает фильтрацию на «статических» методах. Пользовательский интерфейс для этого должен быть без проблем: учитывая, что значок O/C является умным. –

+0

Это не ошибка документации, а ресурс, который вы использовали для изучения Scala. Должно быть ослепительно очевидно, что «Source» не может быть классом, потому что Scala является объектно-ориентированным языком, а на объектно-ориентированном языке вы вызываете методы на объектах, но в Scala классы не являются объектами, ergo, если вы можете вызов метода на что-то, он не может быть классом, он должен быть объектом. И что же ты знаешь? Если вы посмотрите на документацию объекта «Source» вместо класса «Source», там будет документация для 'fromFile'. –

+1

Непонятно, как получить доступ к документации для объекта, а не к классу. Вся документация напрямую связана с классами. Я не понял, что, щелкнув заголовок, страница документации волшебным образом превращается в документацию для объекта. –

ответ

8

fromFile не метод классаSource, это метод объектаSource. То есть вы не можете писать

val source: Source = ... 
source.fromFile(...) 

Вы просматриваете документацию для класса, которая не перечисляет методы объекта. Ссылка на документацию объекта - это круг с C рядом с именем класса вверху.

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