[SCALA] 스칼라에서 익명 함수에서 매개 변수 전에 암시 적 키워드
SCALA스칼라에서 익명 함수에서 매개 변수 전에 암시 적 키워드
나는 암시 적 매개 변수와 스칼라에서 암시 적 변환을 이해하지만 난 처음으로 오늘 이것을보고 : 익명 함수에서 매개 변수의 앞에 암시 키워드 :
Action { implicit request =>
Ok("Got request [" + request + "]")
}
암시 적 키워드는 무슨 일을합니까?
이 자원은 사용 사례가 무엇인지에 대한 자세한 설명 웹에 있습니까?
해결법
-
==============================
1.여기에 두 가지 기능이 있습니다.
여기에 두 가지 기능이 있습니다.
첫째, 요청은 정말 메소드 호출에 인수되지 않습니다. 그것은 익명 함수의 인수입니다. 익명 함수 자체는 메소드 호출의 인수입니다.
둘째, 익명 함수에 암시 적 인수를 선언하는 것은 암시 적으로 "강제"는 발에서 당신을 저장할 수있는 편리함을 가지고 :
Action { request => implicit val r = request Ok("Got request [" + request + "]") }
나는 이것을 플레이 프레임 워크 코드를 알고 일이 있지만, 나는 확실히 조치 및 확인에 대한 서명이 무엇인지 모르겠습니다. 나는 그들이 그런 일 것으로 추측됩니다
def Action(r:Request => Result):Unit case class Ok(str:msg)(implicit r:Request)
다시, 설명 목적으로 만 순수한 추측입니다.
-
==============================
2.몇 가지 자원을 찾았습니다
몇 가지 자원을 찾았습니다
https://issues.scala-lang.org/browse/SI-1492
https://stackoverflow.com/a/5015161/480674
두 번째 링크를 "폐쇄의 암시 적 인수"를 검색
-
==============================
3.나의 이해에서 암시 적 수단의 키워드는 일을 컴파일러하자
나의 이해에서 암시 적 수단의 키워드는 일을 컴파일러하자
이 범위 안에서 다른 방법 암시 파라미터에 사용될 수있는 암시 적 가변 수단을 선언. 즉, 매개 변수는 암시 기입하도록 컴파일러에 의해 고려되고있다.
def index = Action { implicit request => val str = sayHi("Jason") Ok(views.html.index("Your new application is ready." + str)) } private def sayHi(name: String)(implicit req: Request[AnyContent]) = name + ", you can the following content" + req.body
I 형 요청 [AnyContent] 내재적 파라미터 REQ가 내재 변수 요청을 참조하기 위해 컴파일러에 의해 충전되기 때문에, 단, I는 ( "제이슨")에만 제 sayHi 파라미터 메소드를 호출하여 sayHi에 내재 파라미터 REQ 선언
from https://stackoverflow.com/questions/12685591/implicit-keyword-before-a-parameter-in-anonymous-function-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] JSON에 행 스파크 (0) | 2019.11.09 |
---|---|
[SCALA] 빈 / 널 필드 값 새로운 Dataframe 만들기 (0) | 2019.11.09 |
[SCALA] 어떻게 스파크에 dataframe에 JSON 문자열을 변환하는 (0) | 2019.11.09 |
[SCALA] 어떻게 반사를 사용하여 스칼라 객체 메소드를 호출합니까? (0) | 2019.11.08 |
[SCALA] 스칼라의지도를 반전하는 우아한 방법 (0) | 2019.11.08 |