티스토리 뷰
자바와 비교한 코틀린 기초 문법중에 헷갈리기 쉬운것 정리
기초 문법
Unit
- 자바의 void가 코틀린의 Unit임, 생략가능
- 코틀린에서 Number는 클래스임 (자바에서 String 처럼) 자바 -> 코틀린으로 예를들면 int -> Int, float -> Float
리터럴
- 자바는 10진수 8진수 16진수 모두 지원하는데 반해 코틀린은 8진수 지원안함
언더스코어
- 코틀린에서는 긴 숫자같은경우 밑줄로 끊을수 있게 해놓음
ex) 1_000_000 -> 백만, 2진수등등 가능
형변환
- 코틀린에서는 작은타입이 큰타입의 하위호환이 아님 (Int가 Double의 하위가 아님)
- var a: Int = 1 var b: Double = a 라고 했을때 오류가 남 var b:Double = a.toLong() 이렇게 해줘야 에러가 안남
Char
- 코틀린에서 Char는 숫자로 쓸수 없음
배열
- 자바와 많이다름, 코틀린에서는 배열이 클래스(Array로 표현됨)
- 클래스안에 get, set, size등 유용한 함수들이 있음
- println(array.get(0)), println(array[0]) 등 유용하게 사용
특별한 배열
- 배열클래스를 상속한게아님 하지만 사용방법은 같음
- intArrayOf로 선언
문자열 리터럴
- escaped string : 쌍따옴표 사이에 " " 문자열을 넣고 개행 하려면 \n을 사용
ex) val a = "hello world!\n"
- raw string : """와 """ 사이에 내용을 넣으면 엔터로 개행한 그대로 나옴
ex) """
"이것은
개행한 부분입니다"
"""
- 저안에 있는 쌍따옴표도 역슬래시 없이 출력가능
삼항연산자
- 코틀린에는 삼항연산자가 없음, 대신에 if를 식으로 사용할 수 있는데 그 형태는
- var max = if(a>b)a else b 이런 식으로사용할수 있음
- 위의 경우 else를 생략할 수 없음
when
- 변수로 사용가능
- else 사용해야함 But 비교하는게 boolean값처럼 확실하게 나뉘면 생략가능
- 자바의 스위치를 대체하지만 더욱 강력한 기능
- 조건에 콤마를 사용해서 추가가능
- in & range사용해서 리스트안에 값있는지 체크도 가능
- when 옆에 인자 (x)를 입력하지 않으면 논리연산으로 처리를 함(if~else같은)
-예문
var res = when(x){
100-> "A"
80-> "B"
60, 40-> "C"
else-> "F"
}
기타
Package
- 패키지를 명세하지 않으면 이름없는 기본패키지에 포함됨
- 이름없는 패키지는 임폴트안해도 그냥 호출
기본패키지
- 기본으로 import되는 패키지
- 플랫폼별로 다름
Label
- '식별자@ ~~ break@식별자' 사이에 있는 반복문 동시에 탈출 가능
- Label로 retuen, breeak, continue
암시적Label
- 람다가 사용된 함수의 이름과 동일함
- 좀더 편리할수 있음
- 람다가 사용된 이름을 a@ 제외하고 @a 만 뒤에 붙임
Label 값 반환
- return@label 값 의 형식으로 사용
- ex) return@aaa "bbb"
'안드로이드' 카테고리의 다른 글
안드로이드) 리사이클러뷰에서 선택된 아이템의 포지션 얻는법 (0) | 2019.12.09 |
---|---|
안드로이드) Kotlin, Custom Dialog 기본 (0) | 2019.12.09 |
안드로이드) json파일 AssetsManager로 직접 파싱해서 사용하기 (코틀린) (0) | 2019.11.30 |
코틀린 안드로이드 앱 종료& 재시작 (0) | 2019.07.23 |
코틀린 안드로이드 다이얼로그 기본 (0) | 2019.07.23 |
- Total
- Today
- Yesterday
- Hummingbird
- 플러터
- 안드로이드
- springboot
- DART
- password
- RecyclerView
- 안드로이드스튜디오
- flutter
- redis
- 코틀린
- flame
- 에러해결
- CHANNELS
- node.js
- WAS
- Kotlin
- Android Studio
- 에러
- github
- 해결
- socket.io
- Android
- Django
- Tutorial
- chatting
- Git
- mysql
- django server
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |