Я работаю над некоторыми упражнениями для упражнений. Текущий, над которым я работаю, - это упражнение ДНК Scala. Вот мой код и ошибки, которые я получаю:Ошибки понимания Scala
Для справки, ДНК создается экземпляром строки String. Эта ДНК может вызывать подсчет (который учитывает прядь для пропущенного одиночного нуклеотида) и нуклеиновые количества, которые подсчитывают все соответствующие вхождения каждого нуклеотида в нити и возвращают Map[Char,Int]
.
class DNA(strand:String) {
def count(nucleotide:Char): Int = {
strand.count(_ == nucleotide)
}
def nucleotideCounts = (
for {
n <- strand
c <- count(n)
} yield (n, c)
).toMap
}
Ошибки я получаю являются:
Error:(10, 17) value map is not a member of Int c <- count(n) ^
Error:(12, 5) Cannot prove that Char <:< (T, U). ).toMap ^
Error:(12, 5) not enough arguments for method toMap: (implicit ev: <:<[Char,(T, U)])scala.collection.immutable.Map[T,U]. Unspecified value parameter ev. ).toMap ^
Я совершенно новой для Scala, поэтому любое просветление, почему эти ошибки происходят и предложения по их устранению было бы весьма признателен.
Удивительно, спасибо! Я знал, что это просто. Scala - это странный язык, который сначала обертывает вашу голову, но это имеет смысл. Я ценю вашу помощь! – lmcphers
Что касается вашего редактирования с установить его равным .toSet, я получаю эту ошибку прямо сейчас: Ошибка: (9, 7) отсутствует параметр типа п <- strand.toSet ^ Почему просят параметра с этим предложением? – lmcphers
Hm, он должен уметь выяснить, что это набор символов 'Char', вы можете попробовать явно ввести его:' .toSet [Char] ' –