Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 다이나믹프로그래밍
- 문자열다루기
- Android
- 이분탐색
- 동적계획법
- 자바
- 배열
- activity
- 코딩
- 코틀린
- 완전탐색
- dfs
- 프로그래머스
- 트리
- 백준
- component
- GIT
- 분할정복
- BFS
- 그래프
- 생명주기
- 문자열
- 안드로이드
- 카카오블라인드
- 운영체제
- 세그먼트트리
- BOJ
- 코딩테스트
- 알고리즘
- 스택
Archives
- Today
- Total
HS_development_log
Kotlin - Do it 코틀린 프로그래밍 1 본문
반응형
1. 코틀린의 장점
- 자료형 오류를 미리 잡을 수 있는 정적 언어
- 널 포인터 예외로 인한 프로그램의 중단 예방 가능. NPE(NullPointerException)로 부터 자유롭다.
- 여러 가지여러 가지 생략이 표현된 간결하고 효율적인 언어
- 함수형 프로그래밍과 객체 지향 프로그래밍이 모두 가능
- 세미콜론 생략 가능
2. 변수와 자료형
코틀린의 변수 선언 방식은 2가지가 있습니다.
- val : 최초로 지정한 변수의 값으로 초기화하고 더 이상 바꿀 수 없는 읽기 전용 변수
- var : 최초로 지정한 변수의 초기값이 있더라도 값을 바꿀 수 있다.
Tip : val로 변수를 선언해 놓고 변경해야할 때 var로 바꾸면 오류 발생 확률을 많이 낮출 수 있다.
코틀린은 자료형을 지정하지 않고 변수를 선언하면 변수에 할당된 값을 보고 알아서 자료형을 지정할 수 있습니다.
fun main(){
val name : String = "HyeunSeong"
val name = "HyeunSeong" // 자료형을 추론하여 name의 자료형을 String 으로 결정
}
자바는 기본형(Primitive Data Type), 참조형(Reference Type)을 모두 사용하지만 코틀린에서는 참조형(Reference Type)만 사용합니다.
코드 영역 (Code) |
코드를 저장하는 영역 |
데이터 영역 (Data) |
전역 변수, 정적 변수, 등이 들어가는 영역 |
힙 (Heap) |
동적 메모리 할당 영역 |
스택 (Stack) |
지역변수, 함수 호출, 등을 위한 영역 |
코틀린에서 참조형은 스택(Stack)에 참조 주소만 저장됩니다. 실제 객체는 동적 메모리 할당 영역인 힙(Heap)에 저장됩니다.
코틀린에서는 $기호를 사용하여 문자열을 출력할 수 있습니다.
fun main(){
val name = "HyeunSeong"
println("내 이름은 $name 입니다.")
val a = 3
val b = 5
println("a+b = ${a+b} 입니다")
}
코틀린에서는 기본적으로 null을 허용하지 않습니다. 하지만 null을 허용하는 자료형이 따로 있습니다.
객체 선언 타입에?를 붙이면 null을 허용하게 됩니다. 이때 만들어지는 자료형은 null을 허용하지 않는 자료형과 다른 타입입니다.
fun main(){
var str1 : String? = "Hello" // null을 허용하는 자료형 ?
str1 = null
println(str1.length) // null의 가능성이 있기때문에 코드 작성시 오류 발생
println(str1?.length) // ?. 의 세이프 콜 기호 활용
println(str1!!.length) // null이 아님을 단정짓는 !!. 기호. NPE 발생 가능
}
세이프 콜과 엘비스 연산자를 활용하면 가독성이 더 좋은 null체크 코드를 작성할 수 있습니다.
fun main(){
var str1 : String? = "Hello"
str1 = null
// 1)
println("str1: $str1 length: ${str1?.length ?: -1}") // null이 아니면 왼쪽값(str1?.length)를, null인 경우 오른쪽 값(-1)을 반환
// 2)
if(str1 != null){
println(str1.length)
} else {
println(-1)
}
}
1번과 2번은 서로 같은 의미의 코드입니다.
끝.
반응형
'Kotlin' 카테고리의 다른 글
Kotlin - Do it 코틀린 프로그래밍 2 (0) | 2020.07.22 |
---|