본문 바로가기

코틀린

코틀린 공부 이야기 - 2주차

변수

val: 불변 변수. 값을 재할당 할 수 없음 (컴파일 에러)

var: 가변 변수. 값을 재할당 할 수 있음

val은 c언어의 const 변수라고 생각할 수 있을 것 같다.

 

자료형

Integer, Long, Float 등 c언어와 비슷함 // 대신 첫문자 대문자로 쓰기...

 

소수를 변수값으로 저장할 때 자료형을 지정해 주지 않으면 Double형으로 추론

Float로 저장하려면? → f를 값 끝에 붙임

* 변수값을 $ { }으로 넣어 줄 수 있음

 

nullable type

?를 통해 지정하지 않으면, null을 넣을 때 에러

null 할당을 허용하려면 nullable modifier ‘?’를 통해 지정함

if문

c언어와 크게 차이점은 없음

if 조건문 block의 마지막 값이 str로 들어감

if 조건문 block의 마지막 값을 반환해 변수에 할당 가능

when 조건문

c언어의 switch문과 유사

if 조건문과 같이 값을 반환해 변수에 할당 가능

반복문

c와 동일하게 초기화식 → 조건식 → 증감식 순으로 들어감

break와 continue도 똑같이 사용

 

추가로 break@{label}, continue@{label}을 이용해서 가장 가까운 반복문이 아닌, 지정한 반복문을 break, continue 가능

→ 안쪽 반복문에서 바깥쪽 반복문의 중단, 계속이 지정되는 경우 상당히 간편함

 

https://school.programmers.co.kr/learn/courses/30/lessons/120888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이 문제의 경우 2중 반복문 사용시 라벨을 이용하면 간편하게 풀 수 있다

class Solution {
    fun solution(my_string: String): String {
        var answer: String = ""
        
        loop@ for (i : Int in 0 until my_string.length step 1) {
            for (j : Int in 0 until i step 1) {
                if (my_string[i] == my_string[j]) continue@loop
            }
            answer += my_string[i]
        }
        
        return answer
    }
}


연산자

  1. ?. : safe call operator - nullable type 변수 속성에 접근 가능

null이 출력됨

  1. ?: : Elvis operator - null이 아닌 경우 앞에 것 반환

3이 대입됨

  1. !! : not null assertion - null이 사용되지 않을 것을 단언

 

🙋🏻‍♂️ 이번 강의에서 특히 중요하다고 생각하는 것

nullable type이라고 생각한다.

다른 언어들에서는 없는 개념이라서 생소했지만, nullable type을 다루는 연산자가 따로 있는 것을 보아서 nullable type을 중요하게 생각하는 것 같다.

아직 코틀린으로 코드를 짜 본 적이 없어서 어떻게 사용될지는 더 해 봐야 알 것 같다.

 

추가로 매일 c++로 ps하다가 코틀린으로 하니 실행 시간이 상당히 길다!!

또한 세미콜론을 쓰지 않아도 된다는 게 어색하다. 파이썬 같고...

'코틀린' 카테고리의 다른 글

코틀린 공부 이야기 - 4주차  (0) 2024.03.03
코틀린 공부 이야기 - 3주차  (0) 2024.02.26