여행과 독서와 프로그래밍

고정 헤더 영역

글 제목

메뉴 레이어

여행과 독서와 프로그래밍

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (78)
    • 알고리즘 공부 (26)
    • 프로그래밍 (27)
    • 독서 (0)
    • 여행 (0)
    • 주식 리포트 (9)
    • 기타 (2)
홈태그방명록
  • 알고리즘 공부 26
  • 프로그래밍 27
  • 독서 0
  • 여행 0
  • 주식 리포트 9
  • 기타 2

검색 레이어

여행과 독서와 프로그래밍

검색 영역

컨텐츠 검색
[Kotlin] 인터페이스, 클래스 위임 // companion object

medium.com/til-kotlin-ko/kotlin%EC%9D%98-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%9C%84%EC%9E%84%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8F%99%EC%9E%91%ED%95%98%EB%8A%94%EA%B0%80-c14dcbbb08ad Kotlin의 클래스 위임은 어떻게 동작하는가 If you wanna read English version, please see here. medium.com 너무나 잘 설명해주셨다. medium.com/@lunay0ung/kotlin-object-declaration-%EA%B7%B8%EB%A6%AC%EA%B3%A0-companion-object-feat-static-d5c97c..

프로그래밍 2021. 4. 6. 13:17

[Kotlin] latinit, layzy

class Person{ lateinit var name: String } fun main() { val kildong = Person() kildong.name = "Kildong" } lateinit을 이용하면 지연 초기화를 할 수 있다. 지연 초기화 하면 저렇게 kildong을 입력해 줄 때 초기화가 된다. 대신 var로 선언된 프로퍼티만 가능 val 을 사용하고 싶을 때는 lazy를 이용하면 된다. class LazyTest{ val subject by lazy{ println("Lazy") } fun flow(){ println("Not yet") println("subject : one : $subject") // 최초 초기화 시점 $subject에 의해 처음으로 subject 접근 } } f..

프로그래밍 2021. 4. 1. 20:19

[Kotlin] 클래스 게터 세터

class user(val id : Int, _name:String, _age : Int){ //id 처럼 그냥 바로 선언도 가능 var name : String = _name set(value){ println("The name was changed") field = value.toUpperCase() // 입력값 대문자로 변경 이렇게 커스텀도 가능 } var age :Int = _age get() = field //밖에서 user.age 할때 호출되는 값! field 를 써야한다 set(value){ field = value // 밖에서 user.age = 41 할때 41이 value! 꼭 field = value 이어야함 age = value 하면 setAge()가 계속 호출되는 무한 루프 발생 }..

프로그래밍 2021. 4. 1. 16:47

[Kotlin] 이해못한코드

class Pond(_name: String, _members: MutableList){ val name: String = _name val members: MutableList = _members constructor(_name:String) : this(_name, mutableListOf()) } class Duck(val name : String) fun main(){ val pond = Pond("Myfavorite") val duck1 = Duck("duck1") val duck2 = Duck("duck2") pond.members.add(duck1) pond.members.add(duck2) for (duck in pond.members){ println(duck.name) } } 여기서 t..

프로그래밍 2021. 4. 1. 16:15

[Kotlin] break 과 라벨 함께 사용하기

fun labelBreak(){ first@ for (i in 1..5){ second@ for(j in 1..5){ if (j == 3) break@first } } } 좋다 이건 first 블럭의 for문까지 아에 파괴를 해버리는구나 continue@first 이렇게 할 수도 있다.

프로그래밍 2021. 3. 30. 22:09

[Kotlin] 라벨

fun main() { retFunc() } inline fun inlineLambda(a: Int, b: Int, out:(Int, Int) -> Unit){ out(a,b) } fun retFunc(){ println("start of reFunc") inlineLambda(13,3) lit@{ a, b -> val result = a + b if (result > 10) return@lit println("result") } println("End") } 이렇게 하면 lit@ 블럭 바깥부분으로 탈출한다.

프로그래밍 2021. 3. 30. 22:00

[Kotlin] 함수 선언

fun main() { println(mul1(3,5)) va mul2 = {a:Int, b:Int -> a * b} println(mul2(3,5)) println(mul3(3,5)) } fun mul1(a:Int, b:Int) :Int = a*b fun mul3(a:Int, b:Int) : Int{ return a*b } 여러가지로 함수 선언을 할 수 있다. fun mul(a:Int, b:Int) : Int = {return a*b} 이런 코드는 컴파일 에러를 일으킨다. 아직 코틀린 코드 자체가 익숙하지 않다.

프로그래밍 2021. 3. 29. 22:25

[Kotlin] inline

fun main() { shortFunc(3){ println("First call :$it") return } } inline fun shortFunc(a:Int, out:(Int) -> Unit){ println("Before calling out()") out(a) println("After calling out()") } 실행 결과는 Before calling out() First call :3 이렇게 나온다 inline은 코드를 복사하는 거기 때문에 out(3)이 실행되면 println 하고 return을 해버리기 때문에 shortFunc(3){ println("First call :$it") return } 이건 사실 shortFunc(3){println("First call :$it") re..

프로그래밍 2021. 3. 29. 17:28

추가 정보

인기글

최신글

페이징

이전
1 2 3 4
다음
TISTORY
여행과 독서와 프로그래밍 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.