Это способ указания функции. Функция - это то, что принимает один или несколько параметров в качестве входных данных и возвращает выходные данные. Один из способов указать функцию - с помощью символа =>.
s: String => s.length == 4 // a function that takes a String called s as input
// and returns a Boolean (true if the length of s is 4
// false otherwise)
В Scala вы можете использовать функции, такие как целые числа или строки, или любые другие виды базовых типов данных.
Вы можете назначить их переменным:
scala> val f = (s: String) => s.length==4 // assigning our function to f
f: String => Boolean = <function1>
scala> f("abcd") // ...and using it
res1: Boolean = true
и вы можете передать их в качестве параметров другим функциям или методам:
scala> val thrill = List("foo", "bar", "baz", "bazz")
thrill: List[java.lang.String] = List(foo, bar, baz, bazz)
scala> thrill.remove(s => s.length == 4)
warning: there were 1 deprecation warnings; re-run with -deprecation for detail
res2: List[java.lang.String] = List(foo, bar, baz)
здесь вы говорите методу удаления: «применить эту функцию s => s.length == 4 к каждому элементу в списке и удалить все элементы, для которых эта функция возвращает true»
Кстати, обратите внимание, что удаление устарело. Предлагаемая альтернатива - filterNot
scala> thrill.filterNot(s => s.length == 4)
res3: List[java.lang.String] = List(foo, bar, baz)