Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스칼라 동시성
- Akka
- 파이썬
- Play2 로 웹 개발
- 블록체인
- Play2
- 스칼라 강좌
- akka 강좌
- 플레이프레임워크
- Golang
- Adapter 패턴
- play2 강좌
- 하이퍼레저 패브릭
- 스칼라
- 파이썬 머신러닝
- 이더리움
- 안드로이드 웹뷰
- 스위프트
- 파이썬 데이터분석
- Actor
- 파이썬 강좌
- 엔터프라이즈 블록체인
- hyperledger fabric
- Hyperledger fabric gossip protocol
- 하이브리드앱
- 주키퍼
- 그라파나
- CORDA
- play 강좌
- 파이썬 동시성
Archives
- Today
- Total
HAMA 블로그
스칼라 강좌 (24) - 언더스코어 _ 본문
언더스코어 _ 는 스칼라에서 어떻게 사용되나?
1. Import
import scala.concurrent._
import 에서 _ 는 모든을 뜻한다. 자바에서 *
2. 디폴트 초기화
class Foo {
var i : Int = _ // i = 0
var s: String = _ // s = null
}
Int 는 0 으로 초기화 되고 String 을 대입하면 null 로 초기화 됩니다.
3. 고계 함수에서 익명 파라미터
( 1 to 10) map { _ + 1 }
4. 부분 함수에서 익명 파라미터
좀 더 정확히 얘기하면 partially applied function. partial function 과 구분된다. 바로가기
def f(i : Int) : String = i.toString
def g = (x: Int) => f(x)
def g2 = f _
def u(i: Int) (d: Double) : String = i.toString + d.toString
def w = u(4) _ // (y: Double) => u(4)(y) 와 동일
println(w(5)) // 45.0 출력
5. 패턴 매칭
expr match {
case List(1,_,_) => "첫번째 요소는 1 이며 3개의 요소를 가진 리스트"
case List(_*) => "0 개나 혹은 더 많은 요소를 가진 리스트"
case Map[_,_] => "아무 타입의 키와 아무 타입의 값을 갖는 맵"
case _ => "나머지 아무거나"
}
6. 제네릭에서 와일드카드
def size(objs: List[_]) : Int = {
objs.size
}
def loggedIn(req: RequestWithAttributes[_]): User = {
...
}
7. 프로퍼티에서 세터
class Test {
private var a = 0
def age = a
def age_=(n:Int) = {
require(n>0)
a = n
}
}
val t = new Test
t.age = 5
println(t.age)
참고 :
http://ananthakumaran.in/2010/03/29/scala-underscore-magic.html
http://www.slideshare.net/normation/scala-dreaded
'Scala' 카테고리의 다른 글
스칼라 강좌 (26) - JSON 다루기 (0) | 2016.10.19 |
---|---|
스칼라 강좌 (25) - 부분 함수 (Partial function) (0) | 2016.10.03 |
스칼라 강좌 (23) - Null 과 친구들 (None, Nil, Unit) (0) | 2016.09.30 |
스칼라 강좌 (22) - apply 정리 (0) | 2016.09.30 |
스칼라 강좌 (21) - Option 과 Either (0) | 2016.09.29 |
Comments