오늘은 남은 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 |