인터넷에서 Scala 자습서를 살펴보고 저자가 HOF (Higher Order Function)에서 =>와->를 모두 사용하는 몇 가지 예를 확인했습니다.
예:
val vec = Vector("hello", "world").map(s => s -> s.length)
// vec: scala.collection.immutable.Vector[(String, Int)] =
// Vector((hello,5), (world,5))
Scala에서 => 와 -> 의 차이점은 무엇입니까 ?
-> 튜플, 맵 등과 같은 암시 적 변환을 사용하여 키를 값과 연결하는 데 사용되었습니다.
scala> 1 -> 2
res0: (Int, Int) = (1,2)
scala> val map = Map("x" -> 12, "y" -> 212)
기본적으로 왼쪽에있는 항목을 가져 와서 오른쪽에있는 항목에 매핑합니다.
암시 적 변환을 사용하여 모든 유형을 "ArrowAssoc"의 인스턴스로 변환합니다.
implicit def any2ArrowAssoc[A](x: A): ArrowAssoc[A] = new ArrowAssoc(x)
class ArrowAssoc[A](x: A) {
def -> [B](y: B): Tuple2[A, B] = Tuple2(x, y)
}
=> 는 call-by-name을 사용하여 함수의 인스턴스를 생성하기 위해 언어 자체에서 제공하는 구문입니다. 예를 들어 메소드 내부에 값 이름을 전달합니다.
`def f(x:Int => String) {}` function take argument of type Int and return String
아래와 같은 인수를 전달할 수도 있습니다.
() => T
means it doesn't take any argument but return type T
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다