Привет всем Я пытаюсь понять символ «_» в scala, это выглядит как шаблон, но я не понял, почему в данном сценарии.почему scala placeholder не работает
var l = List("a","b" ,"c")
// Works "s" works as a variable.
l.foreach(s =>
if(s=="a"){
print(s)
}
)
// Works _ takes the place of "s"
l.foreach(
print(_)
)
//So the doubt is whether "_" is a wildcard that does not work well.
l.foreach(
if(_=="a"){
print(_)
}
)
"_" должен действовать как переменной s
, но почему он не делает?
Я около 99.8973% уверен, что '_' работает нормально. Это то, как вы используете его, или то, что вы ожидаете от него, вот в чем проблема. – cHao
Вы также должны прочитать http://stackoverflow.com/questions/8000903. Думаю, вы смешиваете использование символов подчеркивания. (Кроме того, подчеркивание можно использовать ровно один раз для переменной, второй символ подчеркивания пытается привязать ко второй переменной, а не к первой второй раз. Итак: 'foreach {_ + 1}' в порядке, 'foreach {_ * _ } 'is not. Если вам нужно ссылаться на одну и ту же переменную несколько раз, назовите ее:' foreach {x => x * x} ').) –