코틀린 문법
주석
// 한 줄 주석
/* 여러줄
* 주석
* 입니다 */
또한 구문이 끝나는 부분에 ; 을 붙이지 않아도 된다.
클래스 이름은 파스칼 표기법(모든 단어를 대문자로 시작)
ex) ClassName
함수나 변수 이름은 카멜 표기법(첫 단어만 소문자로 시작)
ex) functionName
권장
변수의 선언 2가지 방법
- var - 일반적으로 통용되는 변수 언제든지 읽기 쓰기가 가능함
- val - 선언시에만 초기화 가능 중간에 값을 변경할 수 없음
변수는 선언 위치에 따라 2가지 이름으로 불린다
- 클래스에 선언된 경우 - Property(속성)
- 이 외의 Scope 내에 선언된 변수 - Local Variable(로컬변수)
val a:Int? = null // 자료형 뒤에. ?를 붙이면 null을 허용하는 nullable변수로 선언해 줄 수 있다.
nullable변수는 값이 null인 상태로 연산할 시 null pointer exception이 발생할 수 있으므로 꼭 필요한 경우에 한해 사용해야 한다.
코틀린은 기본 변수에서 null을 허용하지 않으며 또한 변수에 값을 할당하지 않은채로 사용하게 되면 문법 에러를 표시하고 컴파일을 막아준다.
코틀린이 제공하는 기본 자료형 (자바와 거의 동일하다)
숫자형 정수
- Byte 8bits
- Short 16bits
- Int 32bits
- Long 64bits
숫자형 실수
- Float 32bits
- Double 64bits
정수형의 리터럴(코드 내에 값을 표기하는 것) 10,16,2진수로 표기 가능하다 8진수x
fun main()
{
var intValue:Int = 123
var longValue:Long = 123L
var intValueHex:Int = 0x1a
var intValueBin:Int = 0b1010
//실수형은 기본이 Double형
var doubleValue:Double = 12.5
var floatValue:Float = 12.2f
}
문자열 코틀린은 UTF-16 BE방식으로 사용한다. 글자 하나하나 2byte메모리 사용
fun main()
{
var charValue:Char = 'a'
var korValue:Char '가'
\\t 탭
\\b 백스페이스
\\r 첫 열로 커서 옮김
\\n 개행
\\' 작은 따옴표
\\" 큰 따옴표
\\\\ 역 슬래시
\\$ $문자
\\uxxxx 유니코드 문자
}
Boolean
- true or false
문자열 : " "
여러줄 : """
형변환 함수들
- toByte()
- toShort()
- toInt()
- toLong()
- toFloat()
- toDouble()
- toChar()
fun main(){
var a: Int = 12345
var b: Long = a // x 코틀린에선 Type mismatch 에러가 난다.
var b: Long = a.toLong() //o 명시적형변환.
}
코틀린에선 형변환시 발생할 수 있는 오류를 막기위해 암시적형변환을 지원하지 않는다.
- 명시적 형변환 : 변환될 자료형을 개발자가 직접 지정
- 암시적 형변환 : 변수를 할당할 시 자료형을 지정하지 않아도 자동으로 형변환됨
배열
fun main(){
var intArr = arrayOf(1,2,3) //arrayOf 사용
var nullArr = arrayOfNulls<Int>(5) // <Int> 제네릭이라고함. 자료형 넣어주면됨 널로 채워진 배열 만들어짐
intArr[2] = 5
println(intArr[4])
}
배열은 처음 선언했을 때의 전체 크기를 변경할 수 없다는 단점이 있다.
하지만 한번 선언해두면 다른 자료구조보다 입출력이 빠르다는 장점이 있다.
타입추론(type inference)
변수나 함수들을 선언할때나 연산이 이루어 질 때 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능
반드시 특정한 자료형으로 지정해야하는 상황이 아니라면 대부분은 코틀린의 타입추론 기능을 이용하여 코드량을 줄일 수 있다.
fun main(){
var a = 123 //Int
var b = 123L //Long
var c = 12.45 //Double
var d = 12.45f //Float
var e = 0xAB //Int
var f = 0b1010 //Int
var g = true // Boolean
var h = "c" //Char
}
함수
특정한 동작을 하거나 원하는 결과값을 연산하는데 사용
함수는 fun으로 시작한다.
fun main(){
println(add(3,4,5))
}
fun add(a: Int, b:Int, c:Int): Int{ //반환형
return a + b + c
}
return 이 발생한다면 함수의 중간이더라도 값을 반환하고 함수를 종료한다.
단일 표현식 함수(single-expression function)
fun add(a: Int, b:Int, c:Int): Int{ //반환형
return a + b + c
}
fun add(a: Int, b:Int, c:Int) = a + b + c //단일 표현식 함수
단일 표현식 함수에서는 반환형의 타입추론이 가능하므로 반환형을 생략할 수 있다.
코틀린에서 함수는 내부적으로 기능을 가진 형태이지만 외부에서 볼 때 파라미터를 넣는다는점 외에는
자료형이 결정된 변수라는 개념으로 접근하는 것이 좋다.
'코틀린' 카테고리의 다른 글
코틀린문법(조건문,반복문) (0) | 2021.07.05 |
---|