2010-04-01 4 views
12

Я могу сказать, что я действительно люблю Scala, но теперь мне хотелось бы узнать, какие функции вы не можете прожить, не работая с Scala? Что относительно Scala 2.8?Каковы лучшие возможности Scala?

+2

должно быть wiki сообщества. – missingfaktor

+0

Извините. Я изменил это, чтобы быть wiki сообщества! –

ответ

13

Если бы мне пришлось вернуться на Java, я бы пропустил больше всего: закрытие, функции более высокого порядка, сопоставление образцов, классы case и упор на неизменность.

Я был на 2.8 на некоторое время. Если бы мне пришлось вернуться к 2.7, главное, что я пропустил, это согласованность, чистота и богатство API-интерфейсов 2.8. Это waaaaaay лучше 2.7. Но я бы тоже пропустил аргументы named и default.

+2

+1. На днях я просматривал сборники Java, и я был ошеломлен тем, что он был намеренно разработан как худший API. –

+4

Даниэль, я думаю, вам нужно взглянуть на классы коллекции MFC;). Я думаю, что коллекции Java не так уж плохи, учитывая, что в Java нет анонимных функций. – Alexey

11

Тип вывода экономит столько бессмысленной типизации. map и foreach и тому подобное в коллекциях отличные, особенно в сочетании с илатерами по умолчанию и лёгким функциональным синтаксисом.

Но, как кто-то, кто делает много научных вычислений, то, что я действительно пропустил больше всего, - это писать высокопроизводительный код, обертывать его в эффективные классы, а затем использовать карты и математические операторы (+, *, что бы там ни было), чтобы манипулировать этими конструкциями высокого уровня, как я на самом деле думаю о них.

Что касается 2,8 по сравнению с 2,7 - улучшение с нашей точки зрения является довольно постепенным. Это немного лучше во многих областях; есть немного, чтобы указать на и сказать: «О, ничего себе!». Я ожидаю, что новая специализированная аннотация поможет мне много, но я еще не видел ее полностью в действии в библиотеке, поэтому я отказываюсь от суждения.

8

Я думаю, что это не особенность, но краткость, которую добивается Скала, - это то, что мне больше всего нравится.

Это, конечно, возможно только из-за ввода типа, закрытия, отличной системы типов и т. Д. Я просто не думаю, что вы можете разбить ее на одну или две функции. Они работают вместе, и результат, сжатый код, - это то, что я назвал бы функцией убийцы.

10

Мне нравится писать в Scala. Это функция # 1 в моей книге :)

я могу просто получить на то, что я хочу, вместо того, чтобы танцевать через обручи Явы:

  • Вал/вар означает, что я не должен писать тип дважды
  • затворов означает, что я не должен писать много анонимных интерфейсов и может повторно использовать много больше кода
  • Именованные параметры означает, что я не должен помнить о позиции каждого аргумента - отлично подходит для чтения и записи
  • Класс случая означает, что я получаю toString и равно бесплатно ... делает отладку ging намного проще!
  • Порядочный API для коллекций (например, карта, сгиб) означает, что я могу сказать, что я хочу сделать, вместо того, чтобы танцевать танец итерационного

Что касается 2,8 против 2,7 ... Я только когда-либо действительно потраченное время в качестве с 2.8 ;-)

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