안드로이드 앱 개발을 위해 코틀린 기본만 알아볼 거예요.
앱 개발하면서 필요한 구문들은 그때그때 익히면 될 거 같아요.ㅋ
코틀린에 대한 설명은 인터넷에 많아서 하지 않을 거예요.
자바 코딩 라인을 확 줄이고 java로 할 수 없었던 개발 기능 확장에 좋다고 하네요.
코틀린 역사가 얼마 안되다보니 인터넷에 찾아봐도 기본 내용만 있고
심도 깊게 코틀린을 분석해서 가이드하는 자료가 많지 않은 거 같아요.
그리고
코틀린은 안드로이드 앱 개발의 공식 언어지만
멀티플랫폼 기능으로 iOS 애플 앱까지 개발할 수 있고
스프링 프레임워크 등에서도 사용 가능하다고 합니다.
이왕 처음 공부하는 거 kotlin 하나만 하면 iOS까지 넘볼 수 있을 거 같네요.ㅋ
코틀린 소스를 작성해서 테스트할 수 있는 사이트가 있어요.
소스 작성하고 실행하면 바로 결과를 알려줍니다.
오른쪽 파란색 Run을 클릭하시면 밑으로 실행결과가 바로 표시되네요.
■ Kotlin
코틀린 프로그램 소스 파일 확장자는 kt입니다.
소스 파일 이름은 암거나 정하시면 되며
프로그램 기능에 맞게 이름을 정하시면 좋겠죠. ㅋ
aaaa.kt 보다는 Greeting.kt 처럼요.
자바는 파일명과 메인 Class 이름이 같아야 되지만
코틀린은 편하게 이름 지으면 되네요.
그리고 줄 끝에 세미콜론 [ ; ]이 없어도 됩니다.
있어도 되고 없어도 된다는 얘긴데요.
컴파일러가 알아서 세미콜론을 자동으로 입력하면서 컴파일한다고 하네요.
다른 개발 언어처럼 코틀린의 시작도 main 함수입니다.
fun main() {
println("Hello, world!!!")
}
● 변수 선언 키워드
코틀린 변수 선언에 사용되는 키워드는 var과 val 두가지입니다.
var은 변수의 값을 변경할 수 있고
val은 한번 정해진 값은 변경 할수 없습니다.
java에서 final 변수와 동일하다고 보시면 될 거예요.
♣ val 변수 값 변경시 에러 발생
fun main() {
val str1: String = "안녕하세요."
str1 = "Hi";
println("Hello, " + str1)
}
▶결과 : Val cannot be reassigned
♣ var 변수 값 변경시 정상 처리
fun main() {
var str1: String = "안녕하세요."
str1 = "Hi";
println("Hello, " + str1)
}
▶결과 : Hello, Hi
● 변수 초기화
코틀린 변수는 변수 타입을 적거나 값으로 초기화를 해줘야 됩니다.
변수 선언과 동시에 초기화를 하지 않더라도
변수 사용 전에는 값으로 초기화를 해줘야 됩니다.
var dat1 : Int = 1234
var dat2 : Int
dat2 = 5678
var dat3 = 9012
var dat4 : Char = 'A'
var dat5 = 'B'
var dat6 : Char
dat6 = 'C'
var dat6 : String = "Hello"
var dat7 = "Thank"
var dat8 : String
dat9 = "Good"
● null
코틀린 기본적으로 null safe 언어로써 변수에 null값을 가질 수 없습니다.
하지만 null값을 필요한 경우에는 자료형 뒤에 ?를 기입하면 null을 사용할 수 있습니다.
그리고
?가 있는 변수는 null을 가지므로 ?가 없는 변수보다 큰범위라고 생각할 수 있겠죠.
그래서 ?가 있는 변수에 ?가 없는 변수를 대입할 수는 있지만
반대로 ?가 없는 변수에 ?가 있는 변수를 대입하면 오류가 발생합니다.
var dat1 : Int = null // 오류 Null can not be a value of a non-null type Int
var dat2 : Int? = null // 정상
var dat3 : Int = 123
var dat4 : Int? = null
dat4 = dat3 //정상
dat3 = dat4 //오류 Type mismatch: inferred type is Int? but Int was expected
● 변수 자료형
숫자형(정수형/실수형) , 문자 , 문자열 , Bool(논리형) , Any가 있습니다.
♣ 정수형 Byte , Short , Int , Long fun main() { var dat1 : Byte; var dat2 : Byte; dat1 = 127 dat2 = 200 // 숫자 범위 에러 ▶ The integer literal does not conform to the expected type Byte var dat3 : Short = 30_000 ▶ 숫자형에 _ 언더바를 붙여 가독성을 좋게 할수 있다. var dat4 : Short var dat5 : Int var dat6 : Long = 123_456_789_012_345 dat4 = dat1 + dat3 //에러 ▶Type mismatch: inferred type is Int but Short was expected dat5 = dat1 + dat3 // 정상 . Byte와 Short 합은 Int 형의 됩니다. println("dat5 : " + dat5) //정상 ▶ dat4 : 30127 println("dat6 : " + dat6) //정상 ▶ dat6 : 123456789012345 ♥ 정수형에서 Byte + Short + Int 3개 변수를 더하면 Int형으로 지정됩니다. Byte + Byte → Int Short + Short → Int Byte + Short → Int } ♣ 실수형 Float , Double fun main() { var dat7 : Float = 12.324234633f var dat8 : Double = 12.324234333444445555 var dat9 : Float println("dat7 : " + dat7) //정상 ▶ dat7 : 12.324235 println("dat8 : " + dat8) //정상 ▶ dat8 : 12.324234333444446 dat9 = 10 //에러 ▶ The integer literal does not conform to the expected type Float var dat10 : Float = 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f var dat11 : Float = 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f + 1.1f println("dat10 : " + dat10) // ▶ dat10 : 8.8 println("dat11 : " + dat11) // ▶ dat11 : 9.900001 } ♥ 실수형 자동 반올림 범위가 넘어서면 반올림을 해서 표현하고 있습니다. Float 12.324234633f→ 12.324235 Double 12.324234333444445555 → 12.324234333444446 ♥ 실수형 오차 발생 변수 dat10과 dat11을 보시면 dat10은 1.1f를 8번 더했기때문에 8.8이 맞조. 근데 dat11은 1.1f를 9번 더해서 9.9가 나와야 정상인데 9.900001가 나옵니다. 이게 무슨 일인가요? ^^;; 원인은 코틀린에서 실수를 표현할때 내부적으로 2진수 0과 1로 표현하면서 소수점이 정확하게 0.1로 떨어지지 않고 0.10000000149........ 처럼 뒷자리 숫자가 많이 남게 됩니다. 이 뒷자리 숫자들이 계속 더해지면서 9.9 뒤에 Float 범위안에 숫자가 생겨서 붙게 되어 9.900001로 된다고 합니다. 웬만하면 실수형은 안쓰는게 좋을거 같아요.^^;; |
★ 숫자 자료형의 범위
자료형 | 변수 size | 숫자 범위 | ||
bit | byte | |||
정수 | Byte | 8 | 1 | -128 ~ 127 |
Short | 16 | 2 | -32,768 ~ 32,767 | |
Int | 32 | 4 | -2,147,483,648 ~ 2,147,483,647 | |
Long | 64 | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수 | Float | 32 | 4 | 1.175494e-38 ~ 3.402823e+38 |
Double | 64 | 8 | 2.225074e-308 ~ 1.797693e+308 |
♣ 문자 Char 이며 1byte 글자 한개를 표현하는 자료형입니다. var dat4 : Char = 'A' var dat5 = 'B' var dat6 : Char dat6 = 'C' ♣ 문자열 String 이며 연속적인 글자를 표현하는 자료형입니다. var dat6 : String = "Hello" var dat7 = "Thank" var dat8 : String dat9 = "Good" ♣ 논리형 Boolean 이며 참과 거짓을 표현하는 자료형입니다. 참은 true , 거짓은 false var dat1 : Boolean = true var dat2 : Boolean = false ♣ Any 모든 변수를 포함할수 있는 최상위 변수가 Any입니다. java의 object 타입라고 생각하시면 될거에요. 최상위 변수이기때문에 형변환 없이 모든 변수를 바로 대입할수 있습니다. var dat1 : Int = 123 var dat2 : Any = dat1 |
코틀린 기본 변수에 대해 알아봤습니다.
감사합니다.
'IT > 안드로이드 Android' 카테고리의 다른 글
kotlin id 자동화 서비스 안될때 . 더 이상 findViewById 필요없어요. (2) | 2022.10.11 |
---|---|
안드로이드 앱 실행되는 원리 정리 (0) | 2022.10.11 |
안드로이드 AVD 실행 도중에 다운되는 경우 . andvlk64.dll not found 해결 (0) | 2022.10.10 |
안드로이드 에뮬레이터 AVD 실행 되다가 안되는 현상 (0) | 2022.10.09 |
안드로이드 앱 만들기 . 코틀린 시작하기 (1) | 2022.10.09 |
댓글