일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 제곱근
- 동적프로그래밍
- 피보나치
- LRU
- memory
- 쌓기게임
- 형변환
- 리틀포레스트
- AfxMessageBox
- synergy
- 보늬밤
- DynamicProgramming
- math
- WebView
- devicedriver
- stack
- darkmode
- QoS
- 코인거스름돈
- Java
- SPI
- 피요모리2
- Kotlin
- Dialog
- DataStructure
- MFC
- Dokka
- Collection
- FirebaseAuth
- android
- Today
- Total
목록Computer/Kotlin (6)
퉁탕퉁탕 만들어보자

1. Source set 설정 SourceSet 에 대해서 아무 설정도 안하면 default 로 모든 public 클래스가 문서화된다. 기본적으로 문서화에 포함할 파일을 설정하는것이 아닌, 제외할 파일/패키지를 설정하는 방식이다. perPackageOption 블럭 내부에서 suppress.set(boolean) 을 통해서 설정할 수 있다. 해당 설정은 dokkaMultiModule 의 경우에 root 가 아닌 각 module 의 build.gradle 에서 설정한다. dokkaHtmlPartial { dokkaSourceSets { configureEach { ... // Regex를 통해서 suppress할(문서생성 안하는) 규칙을 설정해준다. perPackageOption { matchingRege..

Dokka의 MultiModule task는, 각각의 sub project 별로 Partial task를 통해서 문서를 만들고, 그것들을 합쳐서 하나의 통합 문서로 만들어준다. 아래와 같이 설정한다. 1. 최상위 build.gradle (project 단위) import org.jetbrains.dokka.gradle.DokkaTaskPartial apply plugin: 'org.jetbrains.dokka' ... buildscript { repositories { classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.8.10" ... } } // sub module 의 설정에는 영향을 미치지 않음. tasks.dokkaHtmlMultiModule { modu..
Kotlin의 Generic은 기본적으로 Java와 동일한 방식으로 사용가능합니다. class Box(t: T) { var value = t } val box: Box = Box(1) val box = Box(1) 명시적으로 타입을 써줄수도 있지만, 추론이 가능한경우에는 그냥 값을 넣어줄 수도 있습니다. Java의 WildCard type Java type 시스템에는 와일드카드 type이 있습니다. 를 의미합니다. Function은 Function를 의미합니다. Star-projections는 Java의 원시 유형과 매우 유사하지만 안전합니다. Generic functions 클래스는 형식 매개변수를 가질 수 있는 유일한 선언이 아닙니다. function도 가능합니다. 유형 매개변수는 함수 이름 앞에 배..
Sealed class는 abstract class인데 이제 자기를 상속한 class들을 컴파일러가 다 알고있겠다. 하는 클래스이다. 자기를 상속하는 친구들은 같은 패키지안에 있어야한다. 나를 상속하는지 클래스들이 전부 compile타임에 정해지기 때문에, library같은데서 유용하게 쓰일수있다. 3rd party lib에서는 추가적으로 sealed class를 상속하지 못한다. sealed class IOError(): Error class FileReadError(val file: File): IOError() class DatabaseError(val source: DataSource): IOError() 또한 when문에서 else를 지정해주지 않아도 된다. fun log(e: Error) = ..
java를 사용하면서 data 저장용으로만 사용되는 클래스를 만들어서 쓰는 일이 꽤 많다. 이때 java의 경우는 equals() 와 hashCode()를 override해서 재정의해주지 않으면, 모든 field값이 같더라도 비교연산이 제대로 수행되지 않는다. kotlin에서는 data class를 제공하여 위 두 함수를 compiler가 알아서 만들어주기 때문에 좀더 편하게 작업이 가능하다. 사용법 data class User(val name: String, val age: Int) *사용시 주의할점 primary constructor안에 있는 property 들에 대해서만 equals와 hashCode가 연산이 되기 때문에 property를 생성자에 만들어야한다. data class Person(va..
1. list와 함께 사용한다면 for대신 iteration method를 사용하면 편하다 var list = listOf("a", "b", "c") list.forEach() { println(it) } 2. 횟수를 돌아야할때 repeat(3) { println("Hello") } repeat(3) { idx -> println("Hello, $idx") } 3. 자유롭게 변형가능한 for문 // 2 ~ end까지 찍힘 for(i in 2..end) { println(i) } // 두개씩 점프 for(i in 1..end step 2) { println(i) } // idex를 줄어가며 돌기 for(i in 6 downTo 0) { println(i) }