Kotlin
함수형 언어
// 한 줄 주석
/* 여러 줄 주석 */
fun main() { } : 코드 시작점
println("세미 콜론 안붙이고 줄바꿈 출력")
클래스 이름은 파스칼 표기법 : ClassName 모든 단어를 대문자로 시작
함수/변수 이름은 카멜 표기법 : fuctionName 첫 단어만 소문자로 시작
변수 선언
var : 일반적인 변수로 언제든지 읽기/쓰기가 가능함
val : 선언 시 초기화한 이후로 값 변경 불가함 (런타임시 변경되지 말아야 할 값을 안전하게 val로 선언)
클래스에 선언되는 변수 : 속성(property)
Scope범위 내에 선언된 변수 : 로컬 변수
기본 자료형 (자바와 거의 비슷)
숫자: Byte, Short, Int, Long (정수형)
Float, Double (실수형)
var a: Int = 123 //기본값 초기화 필수(null허용 안됨)
var b: Int
b = 123
var c:Int = null //nullable변수
문자: char (글자 하나가 2bytes의 메모리 공간 사용)
var charValue: Char = 'a' //문자변수, 특수문자도 지원
val str = "문자열 변수"
Boolean
var booleanValue : Boolean = true
형변환 함수
toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()
var a: Int = 12345 //명시적 형변환(변환될 자료형을 개발자가 직접지정)
var b: Long = a.toLong()
다른언어의 암시적 형변환은 지원하지 않음 (변수할당 시 자료형 지정 안해도 자동으로 형변환 해주는거)
배열
처음 선언했을 때의 전체 크기를 변경할 수 없다. 그렇지만 빠른 입출력 가능
var intArr = arrayOf(1,2,3,4,5)
var nullArr = arrayOfNulls<Int>(5) //null로 채워진 배열
intArr[0] = 8
println(intArr[2])
타입추론
타입추론: 변수,함수 선언 또는 연산이 이루어질 때, 자료형을 코드에 명시하지 않아도 코들린이 자동으로 자료형 추론
자료형없이 값을 할당할 경우
var a = 1234 //Int형
var b = 1234L //Long형
var c = 12.45 //Double형
var d = 12.45f //Float형
var g = true //boolean형
var h = 'c' //Char형
-> 대부분은 코틀린의 타입추론 기능을 이용하여 선언
함수
fun main(){
prinntlnt(add(5, 6, ,7)) //18
}
fun add(a: Int, b:Int, c:Int) : Int { //반환값은 없으면 생략 가능
return a + b + c
}
//또는
fun add(a:Int, b:Int, c:Int) = a+b+c //단일 표현식 함수
조건문과 비교연산자
var a = 7
if(a > 10)
println("a가 더 크다")
else
print("작거나 같다")
a is Int //좌측 변수가 우측 자료형에 호환되는지 여부, 그리고 형변환까지 한번에
자바의 switch문이 when으로 사용 : 하나의 변수를 여러 개의 값과 비교할 수 있는 장점
fun sampleWhen(a: Any){ //Any는 어떤 자료형이든 상관없이 호환되는 코틀린 최상위 자료형
when(a){
1->println("정수 1입니다")
"ex"->println("문자열입니다")
isLong->println("long타입 입니다")
!isString->println("문자가 아님")
else->println("어떠한 조건도 만족하지 않음")
}
}
여러 개의 조건이 맞을 경우에도 먼저 부합되는 조건만 실행
var result = when(a){
1->"정수"
"문자열"->"문자형"
}
반복문
var a = 0
while(a < 5){
print(a++) //01234
}
do{
println(a++)
}while(a < 5)
for(i in 0..9)
print(i) //0123456789
for(i in 0..9 step 3)
print(i) //0369
for(i in 9 downTo 0)
print(i) //9876543210
for(i in 'a'..'e')
print(i) //abcde
흐름제어
break, continue의 쓰임은 자바와 동일
이중 반복문에서 두번째 반복문 조건에 따라 두개의 반복문을 모두 탈출하고 싶은 경우
loop@ for(i in 1..10) //loop는 이름임(변경)
for(j in 1..10)
if(i==1 && j==2)
break @loop
'Study > Kotlin' 카테고리의 다른 글
[Kotlin] 기초문법 #02 (0) | 2022.02.04 |
---|