enum값은 미리정의된 타입에서 값을 가져와서 사용하기 때문에 대체적으로 안정적입니다. 스트링을 하드코딩하는거보다는요. 1. 기본적인 선언 enum class CustomType { NORMAL, MEDIUM, BEST } 2. 초기화를 하여주는 타입. 타입이 있는 타입? enum class CustomType(val name: String) { NORMAL("normal"), MEDIUM("medium"), BEST("best") } 이렇게 사용 가능합니다.. val type = CustomType.MEDIUM.name => medium 3. 상태에 따른 값을 가져와서 사용 enum class CustomType { NORMAL { override fun index() = 1 override val i..
kotlin을 이용하여 개발을 하다보니 swift의 enum의 사용이 아쉬움이 있었습니다. 그래서 enum처럼 사용하는 방법에 대해서 적어보려고 합니다.아주 동일한 방법은 문법상 안될것 같고 동일하게는 동작합니다. swift에서는 다음과 같이 만들면 됩니다. 그럼 이것을 kotlin으로 만들어 보겠습니다. 두가지 방법정도가 있으며, interface와 sealed class를 이용하는 방법입니다. 참고로 sealed class는 enum과 비슷한 서로 같은 값을 가질수 없는 형태의 집합이라고 합니다. sealed class 공식 문서 : https://kotlinlang.org/docs/reference/sealed-classes.html
enum 값을 앞에서 다루는 방법을 알아보았는데요. 이 값을 switch에 넣어서 사용하는것보다는 if문에서 처리하는게 편할수도 있는 경우가 있습니다. 딱 한개 값만 가져와서 사용할 정도랄까... 그럼 코드 들어갑니다. 1. if case let 1234567891011121314enum CustomType { case number(_ value: Int) case string(_ value: String)} let number = CustomType.number(1) if case let CustomType.number(value) = number { print("number = \(value)")} else { print("not number")} // number = 1Colored by Color..
타입 매칭을 하는 경우에 enum 값을 이용하여서 범위내의 값을 구분할 수 있습니다. 다음과 같이 표현 가능합니다. 123456789let point = (1, 0)switch point {case (0, 0): print("(0, 0)은 원점입니다. ")case (-1...1, -1...1): print("(\(point.0), \(point.1))은 거의 오차범위입니다.")default: print("(\(point.0), \(point.1))은 오차를 벗어납니다.")}Colored by Color Scriptercs 값은 거의 오차범위입니다가 나올겁니다. 이것을 switch에서 사용할 수 있는 이유는 ~=를 사용하기 때문입니다. ~=는 범위내에 존재하는지를 판별하기 위한 연산자이며, 오버로딩이 가능..
enum은 swift에서 사용하기에 가장 훌륭한 자료형입니다.이것을 다양한 자료형을 이용하기 위해서 사용할 경우의 사용방법입니다. 1. 기본 대입 방법입니다. 다음과 같은 enum이 있다고 합시다. 12345enum CustomType { case string(_ value: String) case number(_ value: Int) case date(_ value: Date)}Colored by Color Scriptercs 그러면 이것을 이용하기 위한 방법은 여러가지 입니다. 1. switch를 이용 123456789101112let type = CustomType.number(1) func test() { switch type { case let .date(value): // value는 Date..
- Total
- Today
- Yesterday
- cocoapods
- go
- Java
- golang
- war
- Kotlin
- Spring
- php
- Xcode
- Gradle
- CentOS
- Windows
- enum
- Linux
- Python
- MySQL
- git
- centos8
- docker
- github
- ios
- intellij
- windows10
- Codable
- nodejs
- rxswift
- tomcat
- SWIFT
- android
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |