본문 바로가기
GDSC : KOTLIN STUDY

코틀린 기초(1주차) - Udemy 강의

by 나영수 2022. 9. 28.

0. 모든 것의 시작은 main function에서부터이다.

1. val 과 var 차이점?(변수)

먼저 자바와는 다른점은 코드 마지막마다 세미클론을 할 필요가 없다는 점이다.

var은 중복기재가 된다. 즉 var은 유동적인 변수에 사용한다.
val은 정적인 변수에 사용하기 떄문에 값이 변하지 않는 상수라고 생각하면 된다.

2. 주석 처리
//(한줄 주석), /* */(전체주석)을 사용해서 코드에 대한 설명을 기재한다.
(다른 개발자들이 코드의 의미를 잘 알 수 있도록)

3. type 정해주기(사실은 값을 보고 자동으로 type이 정해진다.) ->타입 추론

byte, short, float 같은 경우는 데이터 타입을 명시해주어야 한다.

val myByte : Byte = 12
val myFloat : Float = 13.37F(F를 기재해줘야 한다.)

val letterChar = 'A'
val digitChar = '$'     
->> 문자 한개만 정하기(char)

val myStr = "Hello World" ->String 형태
var firstCharInStr = myStr[0] -> H가 출력된다.

4. String Template
$을 이용하여 + 를 대신하여 사용할 수 있다.
ex) $myStr.length == + myStr.length

5. 연산자에서 헷갈리는 부분

max++ vs ++max  : 
 전자는 변수의 값이 max가 나오고 증가된다.(코드가 끝나고 나서 증가한다.)
 후자는 변수의 값이 증가되어서 나온다.

print를 할때 System.out.print를 할 필요 없이 간단하다.(장점)

6. when expression

ex)
when(변수){
       1  -> println()
       2  -> println()
       3  -> {println()
                 println()
                }
       in 0..20 ->println()      // 0에서 20사이이면 출력
       else -> println()


7. for 문

1)  for(num in 1..10){         }  ->1부터 10까지를 의미한다.
2) for(num in 1 until 10){        } -> 1부터 9까지를 의미한다.(10 전까지)
 == for(i in 1.until(10)){        }
3) for(i in 10 downTo 1 step 2) {          } -> 10부터 1까지 2씩 띄어서를 의미한다.
 == for(i in 10.downTo(1).step(2)){           }

특정한 값에서 나오기 위해서는 break를 사용하고 특정 값에서 다음 값으로 넘어가고 싶을때 continue를 사용한다.

8. function 생성
fun 이름(parameter) : type { }형식으로 적어준다.

ex) fun addUp(a: Int, b: Int) : Int{    return a+b    } 


**argument vs parameter      -> parameter는 함수와 메서드 '입력 변수명'을 의미하고 argument는 함수와 메서드의 '입력 값'을 의미한다.

**객체지향 안에서는 function이라는 말보다는 method라는 말을 사용한다.
method는 class안에 생성된 function을 의미한다.

9. Nullable

null type도 string, int와 같은 type이다.

?을 사용하면 nullable 사용 가능
ex) var nullableName : String? = null

?를 사용하게 되면 값이 있는 경우는 값을 저장하고 없는 경우는 null을 저장하게 된다.
ex) val name = nullableName ? : "Guest"             
- > nullableName의 값이 있다면 원래 값을 넣지만 null이라면 Guest를 default 값으로 넣어주라는 것이다.
(?: Elvis operator)


10. non-null type  -> 변수에 값이 있다고 확신할 때 사용한다.

!!를 사용하여 선언한다.