Вопросы с тегом «scala»

Scala - это язык программирования общего назначения, в основном предназначенный для виртуальной машины Java. Разработанный для краткого, изящного и безопасного для типов представления общих шаблонов программирования, он сочетает в себе как императивный, так и функциональный стили программирования. Его основными характеристиками являются: усовершенствованная система статического типа с выводом типа; типы функций; сопоставления с образцом; неявные параметры и преобразования; перегрузка оператора; полная совместимость с Java; совпадение

3
Что такое аннотация Scala для оптимизации хвостовой рекурсивной функции?
Я думаю, что есть @tailrecаннотация, чтобы компилятор оптимизировал хвостовую рекурсивную функцию. Вы просто ставите это перед декларацией? Работает ли он также, если Scala используется в режиме сценариев (например, с использованием :load <file>REPL)?

10
Элегантный способ инвертировать карту в Scala
Изучая Scala в настоящее время, необходимо инвертировать карту, чтобы выполнить поиск по инвертированному значению-> ключу. Я искал простой способ сделать это, но нашел только: (Map() ++ origMap.map(kvp=>(kvp._2->kvp._1))) У кого-нибудь есть более элегантный подход?

3
Как скомпилировать тесты с SBT, не запуская их
Есть ли способ создавать тесты с SBT без их запуска? Мой собственный вариант использования - запустить статический анализ тестового кода с помощью плагина scalac. Другой возможный вариант использования - запускать часть или весь тестовый код, используя отдельный бегунок, отличный от того, который встроен в SBT. В идеале было бы решение …
97 scala  sbt  build-tools 


3
Соглашение об именах для констант Scala?
Каково соглашение об именах констант Scala? Краткий поиск по StackOverflow предлагает верхний регистр CamelCase (первая строка ниже), но я хотел дважды проверить. val ThisIsAConstant = 1.23 val THIS_IS_ANOTHER_CONSTANT = 1.55 val thisIsAThirdConstant = 1.94 Какой стиль Scala рекомендуется использовать?


9
Создание больших неизменяемых объектов без использования конструкторов с длинными списками параметров
У меня есть несколько больших (более 3 полей) объектов, которые могут и должны быть неизменными. Каждый раз, когда я сталкиваюсь с этим случаем, я склонен создавать мерзкие конструкторы с длинными списками параметров. Это кажется неправильным, его трудно использовать, а также страдает удобочитаемость. Еще хуже, если поля представляют собой своего рода …
96 java  oop  scala  immutability 

3
Как правильно получить подмассив в Scala?
Я пытаюсь получить подмассив в scala, и я немного не понимаю, как это сделать правильно. Больше всего мне хотелось бы, чтобы это было похоже на то, как это можно сделать в python: x = [3, 2, 1] x[0:2] но я совершенно уверен, что вы не можете этого сделать. Наиболее очевидный …



6
Что означает «абстрагироваться»?
Часто в литературе по Scala я встречаю фразу «абстрактное сверх», но не понимаю смысла. Например , Мартин Одерский пишет Вы можете передавать методы (или «функции») в качестве параметров или абстрагироваться от них. Вы можете указать типы как параметры или абстрагироваться от них. В качестве другого примера, в статье «Прекращение поддержки …

8
Использование Null / Nothing / Unit в Scala
Я только что прочитал: http://oldfashionedsoftware.com/2008/08/20/a-post-about-nothing/ Насколько я понимаю, Nullэто трейт и единственный его экземпляр null. Когда метод принимает аргумент Null, мы можем передать ему только Nullссылку или nullнапрямую, но не любую другую ссылку, даже если она имеет значение NULL ( nullString: String = nullнапример). Мне просто интересно, в каких случаях …
95 scala 

1
Как работает тип Dynamic и как его использовать?
Я слышал, что с Dynamicего помощью как-то можно делать динамическую типизацию в Scala. Но я не могу представить, как это может выглядеть или как это работает. Я выяснил, что от черты можно унаследовать Dynamic class DynImpl extends Dynamic API говорит , что можно использовать его как это: foo.method ("бла") ~~> …
95 scala 


5
распаковка кортежей в scala
Я знаю, что этот вопрос поднимался много раз по-разному. Но мне это все еще непонятно. Есть ли способ добиться следующего. def foo(a:Int, b:Int) = {} foo(a,b) //right way to invoke foo foo(getParams) // is there a way to get this working without explicitly unpacking the tuple?? def getParams = { …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.