Я видел следующий код:
Map(1 -> "one", 2 -> "two") map _._1
это возвращает Iterable [Int], но если я хочу ничего не делать с картой, как это сделать?
Я хочусделать что-то вроде ниже, но приведенный ниже код не может скомпилировать, я знаю, потому что это экземпляр объекта не функция, а как создать функцию для x => x
и использовать заполнитель:
Map(1 -> "one") map (_) // map (Int, String) to (Int, String) by nothing change
// I test some other way, but all can't compile
каксделать это?
ОБНОВЛЕНО
Извините за смятение страстного человека.Я хочу знать, почему map (_) != map (x => x)
, компилятор преобразует этот код в (x$1) => Map(1.$minus$greater("one")).map(x$1)
, почему бы не Map('a'.$minus$greater(1)).map((x$1) => x$1)
, и есть ли способ использовать _
сделать этот код?
Я использовал приведенный ниже код, чтобы помочьКомпилятор определил тип _
:
Map(1 -> "one") map (_:((Int, String))=>(Int, String))
// but it return (((Int, String)) => (Int, String)) => scala.collection.immutable.Map[Int,String] = <function1>
Похоже, синтаксический анализатор не был уверен, куда поместить начало анонимной функции.Итак, мой новый вопрос: «Как помочь парсеру ограничить границу анонимной функции?»