Я записал немного библиотеки, которая использует implicits для добавления функциональности что единственные потребности при использовании REPL в Scala. Ruby имеет библиотеки как это - для вещей как симпатичная печать, разжигая текстовые редакторы (как interactive_editor драгоценный камень, который вызывает Vim от irb - см. это сообщение), отладчики и т.п.. Библиотека, которую я пытаюсь записать, добавляет некоторые методы к java.lang. Класс и java.lang.reflect классы с помощью 'сутенера моя библиотека' неявный процесс преобразования, чтобы помочь Вам пойти и находят документацию (первоначально, с Google, затем позже возможно со средством просмотра JavaDoc/ScalaDoc и возможно StackOverflow API в конечном счете!). Это - царапающая зуд библиотека: Я провожу так много времени, копируя и вставляя имена классов в Google, что я полагал, что могу также автоматизировать процесс.
Это - вид функциональности, которую разработчики захотят добавить к своей системе для использования только в REPL - они не должны действительно добавлять его к проектам (частично, потому что это не может быть что-то, что их поддерживающие разработчики хотят, но также и потому что при выполнении некоторой экспериментальной разработки это может быть только с Scala REPL, это не вызывается IDE или инструментом сборки).
В моем случае я хочу включать несколько классов и настроить некоторый implicits - включают .jar в ПУТЬ К КЛАССУ и импортируют его, в основном.
В Ruby это - вид вещи, которую Вы добавили бы к своему .irbrc файлу. Другие REPLs имеют похожие способы установить опции и импортировать библиотеки.
Существует ли подобный файл или способ сделать это для Scala REPL?
Быстрый ответ, возможно, не то, что вы ищете, но как насчет ввода
:load path/to/some/scala/script/file.scala
в консоли?
:load прочитает файл scala и выполнит его как скрипт.
Другой вариант - использовать sbt установить зависимости и выполнить консольную команду.
Последний вариант, о котором я могу думать, это установить classpath в командной строке вручную и указать его на папки с банками / файлами классов, о которых вы хотите, чтобы jvm знал.
Дайте мне знать, если что-то из этого вас заинтересовало, и я смогу предоставить больше деталей, если потребуется.
В командной строке вы можете использовать параметр -i
для загрузки файла при запуске REPL:
scala -cp mystuff.jar -i mydefs.scala
Конечно, вы можете обернуть это в сценарий оболочки или пакетный файл и запустить его вместо обычной команды scala
.
(я использую Scala 2.8.0 RC3).