일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- win32
- Tipsware
- ListBox
- 핵심 요약
- tips강좌
- 정처기 독학
- Time
- 유료강좌
- do it c
- mysql
- 별찍기 기초
- 마이크로소프트
- 김성엽
- MFC 예제
- 도움말
- MyThread
- MyTread
- linux
- 미가공
- 충무창업큐브
- MFC
- C
- 실습
- C++
- 정보처리기사
- C언어
- 별찍기
- mfc 실습
- 포트폴리오
- SSG
- Today
- Total
History
kotlin 변수와 함수_step2 본문
-데이터 타입
코틀린의 모든 변수는 객체타입이다. 정수를 다루는 타입이 Int인데 Int는 기초 데이터 타입이 아니라 클래스이다.
fun someFun(){
var data1: Int=10
var data2: Int?=null //null 대입 가능
data1=data1+10
data1=data1.plus(10) //객체의 메서드 이용 가능
}
위와 같이 코틀린의 모든 타입은 객체이므로 Int 타입의 변수에 10이라는 정수뿐만 아니라 null을 대입할 수도 있다. 또한 객체의 메서드도 호출할 수 있다.
-기초 타입 객체
기초 데이터를 객체로 표현하는 타입이다.
Int, Short, Long, Double, Float, Byte, Boolean
Int, Short, Long //정수를 표현
Double, Float //실수를 표현
Byte //2진수를 표현
Boolean //true나 false를 표현
val a1: Byte=0b00001011
val a2: Int=123
val a3: Short=123
val a4: Long=10L
val a5: Double=10.0
val a6: Float=10.0f
val a7: Boolean=true
- 문자와 문자열
Char, String
Char는 문자를 표현하는 타입이다.
Char타입의 데이터는 문자를 작은따옴표(')로 감싸서 표현하며 Number 타입으로 표현할 수 없다.
val a: Char='a'
if(a==1){ //오류 Number 타입으로 표현할 수 없습니다.
}
String은 문자열을 표현하는 타입이다. 문자열을 큰따옴표("")나 삼중 따옴표(""")로 감싸서 표현한다.
일반적으로 큰따옴표를 사용할 때 한 줄 바꿈이나 들여쓰기 등을 그대로 유지하려면 \로 시작하는 이스케이프 시퀀스를 입력해야 한다. ex) \n \t
그러나 삼중 따옴표로 표현할 때는 키보드로 입력한 줄바꿈이나 들여 쓰기 등이 데이터에 그대로 반영된다.
아래는 예시 코드이다.
fun main(){
val str1="Hello \n world"
val str2="""Hello
world"""
println("str1:$str1")
println("str2:$str2")
}
.trimIndent() 함수는 안드로이드 스튜디오에서 삼중 따옴표를 사용하면 닫는 따옴표 뒤에 자동으로 추가되는 함수이다.
이 함수는 문자열 앞에 공백을 없애준다.
String 타입의 데이터에 변숫값이나 어떤 연산식의 결괏값을 포함해야 할 때는 $ 기호를 이용하여 정수를 문자열로 출력한다. 이를 문자열 템플릿이라고 한다.
아래는 예시 코드이다.
fun main(){
fun sum(no:Int):Int {
var sum=0
for(i in 1..no){
sum+=i
}
return sum;
}
val name: Sting = "kkang"
println("name:$name",sum: ${sum(10)},plus: ${10+20})
}
- 모든 타입 가능
Any
Any는 코틀린에서 최상위 클래스이다. 모든 코틀린의 클래스는 Any의 하위 클래스이다. 그렇기 때문에 Any 타입으로 선언된 변수는 모든 데이터를 할당할 수 있다.
val data1: Any=10
val data2: Any="hello"
class User
val data3: Any=User()
- 반환문이 없는 함수
Unit
Unit은 다른 타입과 다르게 데이터의 형식이 아닌 특수한 상황을 표현하려는 목적으로 사용한다. Unit타입의 변수는 Unit객체만 대입할 수 있다.
이러한 Unit타입은 주로 함수의 반환 타입으로 사용한다. 함수에서 반환문이 없음을 명시적으로 나타낼 때 Unit타입을 사용한다.
아래는 예시 코드이다.
fun some(): Unit{
println(10+20)
}
또한 함수를 선언할 때반환 타입을 생략하면 자동으로 Unit이 적용된다.
- null 이나 예외를 반환하는 함수
Nothing
Nothing도 Unit과 마찬가지로 의미 있는 데이터가 아니라 특수한 상황을 표현합니다. Nothing으로 선언한 변수에는 null만 대입할 수 있다.
즉 Nothing으로 선언한 변수는 데이터로서는 의미가 없다.
아래는 예시코드이다.
val data1: Nothing? =null
Nothing은 주로 함수의 반환 타입에 사용한다. 주로 null만 반환하는 함수라든가 예외를 던지는 함수의 반환 타입을 Nothing으로 선언한다.
-널 허용과 불허용
코틀린의 모든 타입은 객체이므로 변수에 null을 대입할 수 있다. 코틀린에서는 변수를 선언할 때 null을 대입할 수 있는 변수인지(널 허용, nullalbe), null을 대입할 수 없는 변수인지(널 불허용, notnull)를 명확하게 구분해서 선언해야 한다.
이러한 구분은 변수를 선언할 때 타입 뒤에 ?로 표시한다. 타입 뒤에 ?를 추가하면 널 허용으로 선언하지만 ?가 없으면 널 불허용으로 선언한다.
아래는 예시 코드이다.
val data1: Int=10
data1 = null //오류
val data2: Int?=10
data2 = null //성공
'kotlin > kotlin 문법' 카테고리의 다른 글
kotlin 변수와 함수_step3 (0) | 2023.03.05 |
---|---|
kotlin 변수와 함수_step1 (0) | 2023.03.05 |
kotlin 소개 (1) | 2023.03.05 |