일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- Kotlin
- vue
- file upload
- 코틀린
- class
- 반복문
- swagger
- Producer
- front-end
- It
- props
- 개발자
- 개발이 취미인 사람
- restful api
- SWIFT
- kafka
- spring boot
- Nest.js
- Sequelize
- 조건문
- jpa
- react
- state
- AWS
- component
- node.js
- java
- back-end
- 상속
- Today
- Total
개발이 취미인 사람
[Kotlin] 자료형, 변수, 상수 개념 및 사용법 본문
- 개요
안녕하세요. 이번 시간부터 코틀린에 기본 문법에 대해 알아보겠습니다.
InteliJ IDEA 개발 환경을 혹시 세팅하지 못하신 분들은 아래 링크를 통해 세팅하고 오시는 걸 추천드리겠습니다.
[Mac] Java 개발 환경 설정(IntelliJ IDEA Community)
- IntelliJ 설치 공식 홈페이지 : www.jetbrains.com/idea/download/#section=mac Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains Download the latest version of IntelliJ I..
any-ting.tistory.com
만약 나는 코틀린 문법만 공부하고 싶으신 분들은 아래 사이트에 접속하시면 간단한 문법을 작성할 수 있습니다.
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
- 개념
코틀린은 자바 언어보다 현대적이며 간결합니다(직접 개발을 했을 때 확실이 느꼈습니다.)
구글이 2019년 5월 Kotlin 언어가 이제 Android 앱 개발자가 선호하는 언어라고 발표된 후 현재 50% 이상의 안드로이드 개발언어는 Kotlin으로 만들어졌습니다. (코틀린으로 안드로이드 개발만 가능하지 않습니다. :>)
저 또한 기존에는 자바로 안드로이드 개발을 하다가 코틀린으로 개발을 하면서, "이런 것도 지원하네, 편리한 부분이 많다"라고 많이 느꼈습니다.
자바가 C언어를 보안해서 나온 언어라면 코틀린은 자바언어를 보안해서 나온 언어라고 할 수 있습니다.
- 자료형 종류
코틀린은 자바에서 사용하는 자료형을 사용합니다. 하지만 다른 것도 지원합니다.
- 정수형 : 숫자로 표현할 수 있는 자료형
- byte(1byte) : -128 ~ 127 사이의 정수 값 표현 가능
- short(2byte) : -32,768 ~ 32,767 사이의 정수 값 표현 가능
- int(4byte) : -2,147,483,648 ~ 2,147,483,647 사이의 정수 값 표현 가능
- long(8byte) : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 사이의 정수 값 표현 가능 (값이 너무 커서... 정말 큰 정수 값을 표현하지 않으면 잘 사용하지 않는다.)
- 실수형
- float(4byte) : 1.4E-45 ~ 3.4028235E38 크기의 소수 값 표현 가능
- double(8byte) : 4.9E-324 ~ 1.7976931348623157E308 크기의 소수 값 표현 가능
- 문자
- char : 문자 하나하나 표현 가능 (ex : '안', '녕', '하', '세', '요')
- String : 문자 여러 개 표현 가능 (ex : '안녕하세요')
- 논리형
- boolean : 참과 거짓을 표현 가능 (ex : true & false)
- Kotlin 1.3 이후로 사용하는 한 자료형 (현재 베타 버전 : 사용 시 주의하세요...)
- 부호 없는 정수 자료형
- UByte : 0 ~ 255 범위, 부호 없는 8비트 정수
- UShort : 0 ~ 65535 범위, 부호 없는 16비트 정수
- UInt : 0 ~ 2^32-1 범위, 부호 없는 32 비트 정수
- ULong : 0 ~ 2^64-1 범위, 부호 없는 64 비트 정수
- 모든 타입을 받는 자료형
- Any : 모든 자료형을 받을 수 있습니다.
기본적인 자료형에 대해 알아봤습니다. 사용방법에 대해 알아보겠습니다.
- 변수 상수 개념 및 사용법
변수란? 변수는 "변할 수 있는 수"라고 생각하시면 됩니다.
어떤 프로그램을 만들었는데 상황에 따라 값이 적용이 되지 않는다면... 사람이 하나하나 손 보는 거랑 같다고 볼 수 있겠죠?
그렇기 때문에 프로그래밍 언어에서는 변수를 사용해서 프로그램을 만든 게 됩니다.
상수란? 상수는 변수와 다른 "변할 수 없는 수"라고 생각하시면 됩니다.
코틀린에서는 변수를 선언하는 방식은 두 가지가 있습니다. var & val
var : 고정되지 않은 값을 선언할 때 사용(변수)
val : 고정된 값을를 선언할 때 사용(상수)
fun main() {
var age = 0
val name:String = "개발이 취미인 사람"
age = 24
println(age)
println("이름 : $name")
/**
* 실행 결과
* 24
* 이름 : 개발이 취미인 사람
*/
}
위 소스코드를 확인하면 문자열에 String 자료형을 선언을 했다. 하지만 정수형 데이터에는 선언하지 않았습니다.
코틀린에서는 자료형을 지정하지 않아도 컴파일 시 해당 데이터에 타입을 추론해서 컴파일합니다.
타입 추론
타입 추론 이란: 변수에 타입을 지정하지 않아도 값에 따라 코틀린에서 컴파일시 해당 변수에 자료형을 알맞게 컴파일하는 기술이다.
그렇기 때문에 우리는 변수에 자료형을 작성하지 않아도 됩니다.
val 주의사항
val은 값을 재 할당할 때는 에러가 발생한다. 하지만 객체안에 속성은 변경이 가능하다.
class 개념은 나중에 배울 것이며, 지금은 val이라는 키워드에 집중해서 코드를 봐야한다.
class Hi() {
var name:String = "Hi라고 해~"
companion object{
const val HELLO = "안녕하세요."
}
}
class Bye() {
var name:String = "Bye라고 해~"
}
fun main() {
val hi = Hi();
println(hi.name)
//hi에 name 속성 변경
hi.name = "안녕"
println(hi.name)
/**
* 실행 결과
*
* Hi라고 해~
* 안녕
*
*/
}
Hi Class name 속성을 변경하기 전과 변경 후에 값을 보면 변수에 값이 변경된 걸 알수 있다.
val hi 변수에 새로운 Bye 클래스를 할당하면 에러가 발생한다.
val 키워드에 값을 변경하면 에러가 발생하지만 객체 안에 속성을 변경할 때는 에러가 발생하지 않는 것을 알수 있다.
하지만 무조건 변경이 불 가능하게 설정하는 방법이 있다.
그것은 바로 const 라는 키워드를 사용하는 방법이다.
값을 변경하려고 했찌만 동일하게 에러가 발생하는 것을 알수 있습니다.
const 키워드를 사용할 때 무조건 val 키워드를 사용해야 한다는 점도 잊지말아주세요. :)
- Nullable 변수 (null 값을 허용)
자바로 개발하다 보면... NullPointExeption... 을 많이 만나게 됩니다.
코틀린에서는 이를 방지하기 위해 null 허용 여부를 선택적으로 프로그래밍할 수 있습니다.
fun main() {
var age:Int? = null
val name:String = "개발이 취미인 사람"
age = 24
println(age)
println("이름 : $name")
/**
* 실행 결과
* 24
* 이름 : 개발이 취미인 사람
*/
}
기본 값을 nul로 설정했습니다. age변수는 null을 허용하는 변수입니다.
주의 사항
nullable 변수는 값이 null 상태로 연산하게 되면 NullPointExeption을 발생할 수 있습니다...
이번 시간에는 기본적인 문법에 대해 알아봤습니다. 다음 시간에는 조건문에 대해 알아보겠습니다. 감사합니다. :)
'언어(Programming Language) > Kotlin' 카테고리의 다른 글
[Kotlin] 함수(Function) 사용법 (0) | 2021.02.17 |
---|---|
[Kotlin] 클래스(Class) 생성자(Constructors) 개념 및 사용법 (1) | 2021.02.16 |
[Kotlin] break & continue와 forEach 사용법 (0) | 2021.02.14 |
[Kotlin] while & for 기본 사용법 (0) | 2021.02.14 |
[Kotlin] 조건문 If & When 사용법 (0) | 2021.02.14 |