[Kotlin] 변수와 자료형, 형변환과 배열

yookyungmin·2023년 9월 5일
0

자바 기반의 언어? 보통은 자바 하면 스프링 프레임워크가 생각이 나는데 코틀린+스프링 으로 코프링이란 말도 있어서 대체 Kotlin이 뭐길래 하고 기초적인것부터 접근을 해보았습니다.

Kotlin

  • Java를 대체할 목적으로 만든 ide 전문 개발사인 jetBrains에서 만든 개발된 언어
  • 언어 적으로 최신의 패러다임을 적용하여 java의 몇몇 약점을 개선하여 java 에서 사용하는 java 머신과는 호환될수 있게 만들어짐.
  • Kotlin으로 웹서비스, 안드로이드 개발 뿐 아니라 Javascript 및 swift와 연동이 가능

문법과 언어의 사용패턴 공부를 목적으로 play.kotlin.lang 사이트에서 실습이 가능하다기에 이용해보았습니다.

java 를 할 줄 알면 kotlin 도 쉽게 배운다고 들었는데 코드가 짧아서 놀랬습니다, 세미콜론을 안붙여도 된다고 한다.

  • 클래스 이름은 모든 단어를 대문자로 시작하는 파스칼 표기법, 함수나 변수 이름은 첫 단어만 소문자로 시작하는 카멜 표기법

변수 선언

  • var : 일반적으로 통용되는 변수, 언제든지 읽기 쓰기가 가능함.
  • val : 선언시에만 초기화, 중간에 값 변경 불가
fun main() {
 	var a: Int
    println(a);
}


Variable 'a' must be initialized a 라는 변수가 반드시 초기화 되어야 한다는 에러 발생

Kotlin은 고전적인 언어와 다르게 Kotlin은 기본 변수에서 null 을 허용하지 않는다.
변수에 값을 할당하지 않은채로 사용하면 문법에러를 표시하고 컴파일을 막아 NPE를 차단.

fun main() {
 	var a: Int = 123
    println(a);
}

fun main() {
 	var a: Int
    a = 123
    println(a);
}
//123 출력 

null을 허용하고 싶을 땐?

fun main() {
 	var a: Int? = null
    println(a);
}

nullable 변수는 null 인상태로 연산시 NPE를 발생할 수 있으므로 사용시 주의 필요.

기본 자료형 primitive type

자바와 호환을 위해 자바와 거의 동일

숫자형

정수형

  • Byte 8bits

  • Short 16bits

  • Int 32bits

  • Long 64bits

    실수형

  • Float 32bits

  • Double 64bits

정수형, 실수형 리터럴

fun main() {
   var intvalue:Int = 1234
   var Longvalue:Long = 1234L
   var intvalueByHex:Int = 0x1af //16진수
   var intValueByBin:Int = 0b10110 //2잔슈
   
   
   var doubleValue:Double = 123.5
   var doubleValueWithExp:Double = 123.5e10
   var floatValue:Float = 123.5f
}
8 진수 표기는 지원하지 않는다.

문자형 리터럴

UTF - 16BE 로 관리, 글자 하나하나가 2byts 메모리 사용

var charvalue:Char = 'a'
var koreanCharValue:Char = '가'

Boolean 리터럴

var booleanValue:Boolean = true

문자열

val stringValue = "one line string test"

val multiLineStringValue = """multiLine 
String 
test """ //여러줄로 된 문자열

형변환 함수

  • 기본 자료형들은 자료형간의 형변환을 지원하기 위해 형변환 함수제공
var a:Int = 54321
var b:Long = a.toLong() //명시적 형변환

코틀린에선 to 뒤에 변환 될 자료형을 붙인다. 암시적 형변환은 지원하지 않는다.

배열

var intArr = arrayOf(1, 2, 3, 4, 5)
//arrayOf 함수를 통해 배열에 저장할 값들을 나열하면 됨.

var nullArr = arrayOfNulls<Int>(5)
//특정한 크기의 공간을 가진 비어있는 배열

intArr[2] = 8
//배열에 값을 할당, 사용

println(intArr[4])

자바와 유사하면서도 많이 다른느낌이다..

0개의 댓글