개인 자료란 (JE)

  서버 커뮤니티

Profile muqhc 대표칭호 없음
Profile

커뮤니티 소통 개발하기 잡담

활성 패턴 in Kotlin

2022.05.12 조회 수 1143 추천 수 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/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 4

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 4

물귀신

2024-10-06

3