Как мне сделать scala программу l oop и читать каждую букву в строке - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь сделать программу go через заранее заданную строку и читать каждый символ 1 на 1 способом, подобным тому, что я опубликовал. IDE сообщает мне, что я не могу выполнить «cs> = 1», потому что «> =» не является частью «(Char => Boolean) => Int».

def move(s: String) {
  var chemov = s.take(1)
  var cs = s.count(_)
  while (cs >= 1){
    ad()
    s.drop(1)
  }
}

1 Ответ

2 голосов
/ 07 мая 2020

s.count() не дает вам длины s, но дает вам количество вхождений, которым соответствует предикат. Если просто указать подчеркивание, то cs будет не целым числом, а функцией. Вот почему вы получаете свою ошибку. Вы можете получить размер с помощью s.length

Если вы хотите использовать count, вам нужно указать функцию:

var cs = s.count(_ => true)

В качестве альтернативы вы можете просто перебрать строку :

s.foreach( c => {
    ad()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...