2017-02-27 1 views
0

스칼라에서 메서드 해제에 대한 데모를위한 자습서를 읽고 있습니다. 여기스칼라 :이 경우에 _이 무엇을 나타내는가

case object None extends Optional[Nothing] 

case class Presenter[+A](get: A) extends Optional[A] 

trait Optional[+A] { 
    def map[B](f: A => B): Optional[B] = this match { 
    case None => None 
    case Presenter(x) => Presenter(f(x)) 
    } 
} 

리프트 방법 : 여기에 기본 클래스의 코드가

def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f 

내 질문은 : ("_") 밑줄 위의 함수로 표현하는 일.

감사

+0

에 리프트는 옵션 [A]에서 선택 사항 [B]로 새 기능을 반환합니다. 그래서 Optional [A]는이 새로운 함수의 입력 인자입니다. 이 경우 _은 'lift'함수의 'f'인수로 'map'함수가 호출되는 선택적 [A] 인수를 나타냅니다. 덕분에 –

답변

1

_ map f(a: Optional[A]) => a.map(f)_와일드 스칼라는 동일하다. 예를 들어, 유형이 Optional[A] 인 매개 변수를 의미하고 map f

+0

. 우리가 scala에서 어떤 규칙을 알아야 하는지를 알려주시겠습니까 –

+0

표시된 중복 답변이 더 좋습니다. :) – chengpohi

관련 문제