본문 바로가기
캠프 개발일지

TIL - 23.12.11

by JHBang 2023. 12. 12.

오늘은 남은 Kotlin 강의 중 모르는 부분과 코드카타를 진행하면서 많이 나왔던 내용을 정리했다.

 

  • 널 세이프티

kotlin에선 자료형에 널 여부를 명시할 수 있다. (자바와의 차이점 중 하나)

 

?, !!, ?., ?: 로 총 4가지이다.

 

? -> 널을 저장할 수 있다는 뜻
!! -> 널이 아니라고 확정짓는 뜻
?. -> 널일 수도 있지만 널이 아닐 때 실행한다는 뜻
?: -> 엘비스 연산자.널 일때 null대신 다른 명령을 실행

 

 

  • 배열

arrayOf 메서드를 이용해 배열을 생성한다.

import java.util.Arrays

위 코드를 작성 후에 Array라는 키워드를 사용 가능한데

 

Arrays.toString(arr)

위 코드는 배열을 눈에 보이는 형태로 반환한다.

arr.withIndex() => (인덱스, 값) 형태로 반환

withIndex를 사용하면 인덱스와 값을 동시에 가져올 수 있다.

 

 

arrayOf에는 자료형에 관계없이 값을 넣을 수 있다.

// ex) 
var arr = arrayOf(1, 100, "word", 'a', true)

 

 

특정 자료형이 들어가는 경우에는 제네릭을 이용해 명시한다.

var arrayInt = arrayOf<Int>(10, 20, 30)
var arrayChar = arrayOf<Char>('x', 'y', 'z')
var arrayBoolean = arrayOf<Boolean>(true, true, false)

 

 

위 코드의 기능을 기본으로 제공하는 함수도 있다.

var arrayInt = intArrayOf(100, 200, 300)
var arrayChar = charArrayOf('a', 'b', 'c')
var arrayBoolean = booleanArrayOf(false, false, true)

 

 

위에서 Import한 Array 메소드로도 생성 가능하다.

// 사이즈가 10, 각 자리에 1이 들어간 배열
var array = Array(10){1}
// 사이즈가 10이고 인덱스 x 5가 들어간 배열
var array2 = Array(10){it*5}
// 람다 함수의 it은 인덱스를 나타냄
//제네릭도 사용 가능하다.
var array3 = Array<Int>(4) { 1 }
var array4 = Array<String>(10){ "num${it+1}" }
// 물론 제공 함수도 존재한다.
var array5 = IntArray(5){it+1}
var array6 = CharArray(5){'x'}

 

여기서 주의할 점은 StringArray는 없다는 것이다.

 

 

아래는 배열에 값을 넣고 빼는 방법이다.

// 배열에서 값 넣고빼는법
array2.set(0, 30)   // (인덱스, 넣을 값) 순서.
array2.get(1)       // 해당 인덱스를 제거

 

 

 

'캠프 개발일지' 카테고리의 다른 글

개발일지 - 1일차 : S.A. 작성 및 아이디어 회의  (0) 2024.02.27
샤ㅣ  (0) 2024.01.16
TIL - 23.12.06  (0) 2023.12.06
TIL - 23.12.05  (2) 2023.12.05
TIL - 23.12.04  (0) 2023.12.04