기본 입력방식

노지수·2022년 1월 26일
1

코틀린의 기본 및 자바와 차이점 비교

readLine

자바의 Scanner와 같다
val input = readLine() // 콘솔창에서 입력받은 값을 input에 저장
println("you input: $input") // input 출력
기본적으로 코틀린은 자바와는 다르게 ;(세미콜론)을 붙이지 않는다

변수선언

// 자바
String str = "String";	// String타입의 변수 선언
int number = 13;	// int타입의 변수 선언
Double a = 13.13;	// Double타입의 변수 선언
// 코틀린
var str:String = "String변수"	// String타입의 변수선언
var number:Int = 13		// int타입의 변수 선언

val STR:String = "String상수"	//String타입의 상수선언
이렇게 코틀린에서는 변수와 상수를 먼저 선택하고 타입도 다른방식으로 지정한다.
또 한가지는 코틀린은 따로 타입지정을 하지 않아도 추론이 가능하다
var str = "String변수 자동인식"	// :String을 입력하지않아도 String으로 추론

? 와 !!

코틀린은 기본적으로 변수에 null값을 넣을 수 없다.
따라서 ? 나 !! 를 붙여주어야 한다.
// ? 사용
var str1:String? = "null허용"
var str2:String = "null을 허용하지 않음"
위에 코드처럼 ?를 붙이면 null값이 허용되므로 NullPointerException발생이 없음
?는 int형이나 Double형처럼 어떤타입에도 사용이 가능하다
// !!사용

// 기본 num1 변수선언은 null값을 허용하지 않는다
var num1:Int = 0	// num1을 0으로 초기화
// ?를 사용한 num2 변수선언은 null값을 허용한다
var num2:Int? = 10	//	num2를 10으로 초기화

num1 = num2!!	//num1은 null을 허용한 상태이기 때문에 !!로 처리해야 값을 넣을 수 있다
!!는 null값이 절대 들어오면 안되는 경우에 붙여준다.
따라서 num2가 null이라면 num1 = num2!! 구문에서 오류가 발생한다
profile
프로그래밍, 개념 및 이론 기록

0개의 댓글