코틀린-안드로이드

1일차)코틀린 문법-1

songyooho 2024. 3. 28. 17:40

1. 패키지 경로 

패키지 경로가 같은 코틀린 파일끼리는 import없이 사용가능. -경로가 다르면 import로 지정해서 사용가능

ex) import com.example.test3.data //com.example.test3라는 경로 안에 존재하는 코틀린 파일에서 data라는 변수 가져옴

 

=>궁금증)같은 경로 서로 다른 파일안에 동일 명의 변수가 존재하면? ex)A.kt와 B.kt에 data라는 변수존재시 C.kt에서 data라는 변수사용하려할시?: 전역변수에서의 동일명의 변수는 존재하게 이름 지정시 컴파일에서 에러가 뜸

 

2. 변수

1)선언 형식: val / var 변수명: 타입 = 값

-val은 초기화 후 변경 불가, var은 초기화 후 변경 가능

 

2)위치에 따른 초기값 설정: 함수 밖 최상위 위치는 처음에 초깃값 설정을 해야하고 함수내면 안해도 됨.

=>클래스 내는 초깃값 설정해야 하니 헤깔리지 X

 

3)초기화 미루기:

<1> lateinit: var에만 사용가능, 정수,실수,boolean에는 사용 불가능

ex)lateinit var data: String

<2> lazy: 마지막줄 값이 변수 초기값

ex) val data: Int by lazy{ ~~

~~~

10} //이러면 10으로 초기화됨

 

3)데이터 타입

-코틀린의 모든 변수는 객체: 즉 null대입 가능

<1>기초 타입 객체

[1]정수형: Int, Short, Long

[2]실수형:Double, Float

[3]2진수:Byte

[4]boolean

 

<2>문자, 문자열

[1]문자: Char

[2]문자열: String

-문자열 템플릿: 변수는 $data 연산식은 ${연산식} 형식으로 따옴표내에 이어 넣음

 

<3>Any: 모든 타입의 데이터 할당 가능(모든 코틀린 클래스의 상위 클래스)

 

<4>Unit: 함수의 반환값이 없는 경우를 표현하기 위해 사용

ex)fun some(): Unit{} => 생략가능: fun some(){ } =>생략하면 자동으로 Unit으로 반환타입 설정

 

<5>Nothing: null이나 예외반환의 경우 사용-주로 함수에서 null을 반환하거나 throw Exception()인 경우 사용

 

4)널 허용, 불허용: 변수 타입 뒤에 ?붙이면 null허용

ex) var data: Int? =10 =>이경우 data에 null대입가능