😗 실습 사이트
1. 변수1. 선언1.2 변수 타입2. 함수2.1 함수 선언2.2 변수 기본 값 선언3. 컬렉션3.1 Array (배열)3.2 List3.3 Set3.4 Map4. 조건문과 반복문4.1 조건문4.2 반복문 for과 while
1. 변수
1. 선언
다음과 같이 변경 가능한 변수는
var 변경 불가능한 변수는 val로 선언합니다.코틀린의 모든 타입은 객체임으로 변수에 null을 대입할 수 있습니다. 대신
선언할 때 null을 대입할 수 있는 변수인지, null을 대입할 수 없는 변수인지 ?로 구분하여 명확하게 선언하여야 합니다초기화를 해야 하는 변수 vs 하지 않아도 되는 변수
🔎 해야 하는 변수
최상위에 선언한 변수(전역 변수)
클래스의 멤버 변수
- 생성자를 통해 선언 시 바로 초기화가 된다면 반드시 값을 명시할 필요는 없습니다.
🔎 하지 않아도 되는 변수
함수 내부에 선언한 변수
초기화를 미룬 변수
초기화를 미룬 변수?
🤪 lateinit
lateinit으로 선언한 변수는 초기 값을 할당하지 않아도 됩니다. 다만!- var 키워드로 선언한 변수이거나
int, Long, Short, Double, Float, Boolean, Byte타입에는사용할 수 없습니다.
🤪 lazy
변수 뒤에 붙는 접미사로 변수 선언 뒤에
by lazy { 내용 } 형식으로 선언되며 변수가 최초로 이용되는 순간 중괄호로 묶은 부분이 자동으로 실행되어 그 결괏값이 변수의 초기값으로 할당됩니다.초기화를 하지 않아도 되는 것들에 대한 예시입니다.
1.2 변수 타입
코틀린의 모든 변수는
객체 입니다. 이는 즉 변수에 메서드가 존재하며, Int 타입의 변수에 null을 대입할 수도 있습니다. (?를 붙인 경우)기초 타입 객체
기초 데이터형을 의미하며, 정수를 표현하는
Int, Short, Long , 실수를 표현하는 Double, Float , 이진수를 표현하는 Byte , 참/거짓을 표현하는 Boolean 타입이 존재합니다.😎 타입 선언은 다음과 같습니다.
문자와 문자열
Char은 문자를 표현하는 타입이며 ' 를 이용하여 선언합니다.String은 문자’열’ 을 표현하는 타입이며 "" 혹은 """ 로 감싸서 표현합니다.문자열 템플릿의 경우 ${변수} 형태로 문자열 내에서 사용됩니다.😎 예시 입니다.
모든 타입이 가능한 타입 (Any)
Any는 코틀린에서 최상위 클래스 입니다. 따라서 Any타입으로 선언한 변수에는 모든 타입의 데이터를 할당할 수 있습니다.반환(return)이 없는 함수
Unit 타입으로 선언한 변수에는 Unit 객체만 대입할 수 있습니다. 보통 함수에서 반환문이 없음을 명시적으로 나타낼 때 사용됩니다함수를 선언할 때 반환 타입을 생략하면 자동으로 Unit이 적용됩니다.
null이나 예외를 반환하는 함수 (Nothing)
Nothing도 Unit과 마찬가지로 의미 있는 데이터가 아니라 특수한 상황을 표현합니다.
Nothing으로 선언한 변수에는 null만 대입할 수 있습니다.2. 함수
2.1 함수 선언
코틀린에서 함수를 선언할 때는
fun키워드를 이용합니다.선언 방식은 다음과 같습니다.
2.2 변수 기본 값 선언
매개변수에 값이 없다면 기본 값을 넣어줄 수 있습니다.
또한 해당 함수를 선언할 때, 매개변수를 지정하여 호출할 수도 있습니다.
3. 컬렉션
3.1 Array (배열)
코틀린의 배열은 Array 클래스로 표현합니다. 처음 생성할 때
첫 번째 인자는 배열의 크기, 두번째 인자는 초깃값을 지정하는 함수 입니다.선언
데이터 접근
3.2 List
순서가 있는 데이터의 집합으로
데이터의 중복을 허용합니다. 배열과 List의 차이는
배열(Array)은 길이를 변경할 수 없지만 List는 선언시 MutableList로 선언하면 길이를 변동시킬 수 있습니다.가변 클래스 / 불변 클래스
Collection 타입의 클래스는 가변 클래스와 불변 클래스로 나뉘는데,
불변 클래스는 초기에 데이터를 대입하면 더 이상 변경할 수 없는 타입입니다. 하지만 가변 클래스는 초깃값을 대입한 이후에도 데이터를 추가하거나 변경할 수 있습니다. 보통 변하기 쉬운이라는 뜻인 mutable 을 사용합니다.🔎 List
불변: listOf()
가변: mutableListOf()
➡️ 예시
3.3 Set
순서가 없으며
데이터의 중복을 허용하지 않습니다.🔎 Set
불변:setOf()<객체 타입>
가변:mutableSetOf()<객체 타입>
➡️ 예시
3.4 Map
키와 값으로 이루어진 데이터 집합으로, 순서가 없으며
키의 중복은 허용하지 않습니다.key와 value를 넣을때는
“Pair(’key’, ‘value’)" 처럼 객체로 표현하거나 "key" to "value" 형식을 사용합니다.- 두개를 같이 써도 상관 없습니다.
🔎 Map
불변: mapOf()
가변: mutableMapOf()
➡️ 예시
4. 조건문과 반복문
4.1 조건문
기본
다른 언어의 조건문과 동일합니다.
표현식을 이용한 사용
value가 0 이상이라면 data1에true가 저장,아니면 false가 저장됩니다.
조건문 when
when 키워드는 소괄호 안에 넣은 데이터가 조건이 되고, 이 값에 따라 각 구문을 실행합니다
각 구문을 다양하게 설정해 줄 수 있습니다.
- 상단부터 맞는 부분에서 멈춰 실행합니다.
- data 부분을 생략하고 조건 식 자체를 선언해 줄 수 있습니다.
표현식으로도 사용이 가능합니다.
- else는 반드시 들어가야 합니다.
4.2 반복문 for과 while
for문
파이선과 자바를 섞어놓은듯함
while 문
