개인 자료란 (JE)

  서버 커뮤니티


Profile muqhc 대표칭호 없음
Profile

강좌 및 개발 개발자란 개발 잡담 자랑

활성 패턴 in Kotlin

12 일 전 조회 수 143 추천 수 0

F#에 있는 활성 패턴을 코틀린에 구현(?) 해보았습니다.


다음의 Color 클레스가 있다고 합시다.


// Just a 'Color' class
class Color(val hex: Int)


이때, 다음과 같이 RGB 활성 패턴을 만들 수 있습니다.


val RGB = // create Active Pattern for 'Color'
    ActivePattern<Color, (red:Int,green:Int,blue:Int) -> Any> {
        val blue = input.hex % 256
        val green = (input.hex shr 8) % 256
        val red = (input.hex shr 16) % 256
        export(red,green,blue)
    }


그리고 다음과 같이 Color를 RGB 활성 패턴에 매칭 할 수 있습니다.


val obj = Color(0xFF00FF)

// do pattern match
match(obj) {
    // use Active Pattern
    case(RGB) { red, green, blue ->
        println("Color(red=$red,green=$green,blue=$blue)")
    }
    // when match nothing
    else_ { throw Exception("Not a Color") }
}


쓸일이 있을지는 모르겠으나,

자세한건 -> Github(https://github.com/muqhc/kotching) 를 참고 할 수 있습니다.


Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 컨텐츠
/files/thumbnails/976/232/003/262x150.crop.jpg?20220525065427

유튜브

마켓플레이스 5주년 기념 트레일러 영상 공개 (댓글반응은 덤..) 1

프리루트

2022-05-25

1

/files/thumbnails/897/232/003/262x150.crop.jpg?20220524225728

업데이트

마인크래프트 1.19 프리릴리즈 2 출시

BMlight

2022-05-24

1

/files/thumbnails/600/232/003/262x150.crop.jpg?20220524020530

페이스북

마인크래프트 1.19 야생 업데이트 맛보기 영상 공개 (깊은 어둠, 알레이 편) 1

프리루트

2022-05-24

0

/files/thumbnails/871/230/003/262x150.crop.jpg?20220521161559

업데이트

마인크래프트 1.19 프리릴리스 1 업데이트 1

마리오군

2022-05-21

0