Kotlin? 1

3667 단어 kotlinandroidandroid

공부용으로 작성하고 있는 글입니다. 가독성이 떨어지지만 혹시나 틀린 부분이 있거나, 더 알려주실 수 있는 부분이 있으시다면 댓글로 피드백 해주시면 정말 감사하겠습니다.

프로젝트 진행에 앞서, Kotlin에 대한 기본 이론과 문법에 대해 정리해보고자 한다.

Kotlin 웹컴파일러
https://play.kotlinlang.org

Kotlin은 2016년에 나온 언어로, 자바를 보완하기 위한 언어이다.
자바로 개발 할 수 있는 것은 코틀린으로 개발 가능하다!

왜 Kotlin을 배워야 하는가?
-> 조금 더 편하고 쉽다!

다음은 Kotlin에서의 main함수이다.

fun main(args : Array<String>) {
  print("Hello World")
  }

-> 자바와 다른 점 : ;없다, System.out없다
-> 자바와 같은 점 : main 함수 사용한다.
-> fun은 function을 의미하는 예약어

fun sum(a: Int, b : Int) : Int {
  return a+b
  }
  
fun helloWorld() : Unit {
	print("Hello World")
}

와 같이, sum은 함수명, a와 b는 매개변수명, 각 매개변수는 ,로 구분하고 :뒤에 매개변수 타입을 적어준다. ()뒤에는 :와 함께 반환형을 적어준다. 위의 함수들과 같이 리턴타입이 void면 생략 가능, 혹은 Unit으로 표기한다.

표현식으로 적으면

  fun sum(a: Int, b:Int) = a+b

와 같이 나타낼 수 있다.

if문 표현식

fun max(a: Int, b:Int) = if (a>b) a else b

변수, 상수 선언 키워드 var, val

val a: Int = 1
val b = 2    //타입선언 안해줘도 컴파일러가 추론 가능하다.
val c = 3.14
val d: String
d = "필수로 있어야 하는 구문" 

Null Safety? : Kotlin에서는 기본 변수에 null값을 허용하지 않는다!!

Kotlin에서는 변수에 값을 할당하는 것이 필수적이다. 그렇지 않으면 문법 에러가 발생한다.

만약 nullable(null값 허용)을 원하면 ?키워드와 함께 사용한다.

var a : Int? = null

좀 더 안전하게 null사용을 원하면 ?.(세이프콜), ?:(엘비스) 연산자와 사용 가능하다.

세이프콜 : null값이 발견되면 그대로 null값을 반환
엘비스 : 변수 값이 null이 아니면 왼쪽 식, null이면 오른쪽 식을 실행

var nullTrue: String? = null
var nullFalse: String? = "Hello World"

println("nullTrue: $nullTrue, length: ${nullTrue?.length ?:-1}")
println("nullFalse: $nullFalse, length: ${nullFalse?.length ?:-1}")
//실행 결과
nullTrue: null, length: -1
nullFalse: Hello World, length: 11

!!연산자

val mNotNull= "str"!!
val upper = mNotNull.toUpperCase()

print(upper)

!!으로 mNotNull이 절대 null값이 아님을 알려준다. 하지만, 확실히 null이 아닌이상 지양하는 것이 좋다.

var은 variable, 말 그대로 변할 수 있는 수
val은 value, 변하지 않는 값.
var은 재할당이 가능하지만, val에는 재할당이 불가하다.

Kotlin에도 자바와 같이 Byte, Short, Int, Long의 정수형 변수타입과 Float, Double과 같은 실수형 변수 타입, 그 외 Char, String, Boolean같은 변수 타입이 존재한다.

String 템플릿

val name = "Yeong Seo"
print("my name is $name I'm 25")

이때, my name is Yeong Seo. I'm 25로 붙여서 출력하고 싶다면

val name = "Yeong Seo"
val lastName = "Yoon" 
println("my name is ${name}. I'm 25")
print("my name is ${name + lastName} I'm 25")

와 같이 대괄호를 작성해 사용한다. 변수는 +를 통해 이어쓰기 가능하다.
$표시를 풀력하고 싶으면 자바와 같이 \를 사용한다.

print("this is 2\$a")

좋은 웹페이지 즐겨찾기