목록Kotlin (9)
낭만 프로그래머
Collection 1. 코틀린은 Collection 인터페이스를 구현한 많은 타입이들 존재한다. 대표적인 것이 List, Map 과 같은 것이다. 자세히 구분해 보면 아래와 같다. ( Iteraotr는 생략 되었음) Collection List MutableList ArrayList Set MutableSet HashSet LinkedHashSet Map MutableMap HashMap LinkedHashMap 2. Collection 의 Property - indices : Collection의 Index의 IntRange 객체 ( 예. 0..2 ) - lastIndex : 마지막 Index 3. Collection 의 함수들은 아래 URL을 참조하자 Package kotlin.collections
Map, MutableMap 1. Key, Value 의 쌍으로 데어터를 가지고 있는 Collection에 Map과 MutableMap이 있다. Map은 불변이며 MutableMap은 가변적으로 데이터를 변경 할 수 있다. val mapData: Map = mapOf(1 to "일", 2 to "이") // Map 객체 생성 val mapData2: Map = mapOf(Pair(1,"일"), Pair(2,"이")) // Map 객체 생성 mapData2.remove(1) // 불변이므로 오류 val mutableData: MutableMap = mutableMapOf(1 to "일", 2 to "이") // MutableMap 객체 생성 mutableData.put(3, "삼") // 정상 printl..
Set, MutableSet 1. 순서가 없으며 중복을 허용하지 않는 Collection에는 Set과 MutableSet이 있다. Set은 불변이며 MutableSet은 가변적으로 요소를 변경 할 수 있다. val setData: Set = setOf(1,2,3) val mixSetData = setOf(1, "일", 1.0) // 여러가지 타입의 Set 객체 생성 mixSetData.add(2) // 불변이므로 오류 val mutableSetData = setOf(1, "일", 1.0) // MutableSet 객체 생성 mutableSetData.remove(1) // 정상 2. Set API 3. MutableSet API
List, MutableList 1. 순서가 있는 Collection으로 List와 MutableList가 있다. 차이점은 List는 불변이고 MutableList는 가변이다. 2. get(), set() 함수를 사용하여 접근 또는 [index]를 사용하여 접근 할 수도 있다. 3. 참고 사항으로 val 변수에 객체를 할당되었을 경우 객체를 재할당하는 것은 되지 않지만 할당된 객체의 내용이 변경되는 것에는 문제가 없다. 즉 val data = mutableListOf(1,2,3) 으로 선언한 후에도 data.add(4)는 가능하며 data = mutableListOf(1,2,3,4)는 불가능 하다는 것이다. val emptyListData: List = emptyList() //비어 있는 List 생성 ..
Array 1. Array 선언 형식 var 변수명: Array = Array(배열크기, 초기값 함수) var array1 = Array(2, {0}) //초기값을 0으로 하는 사이즈 2인 1차원 배열 var array2 = Array(2, { Array(2, {0}) }) //초기값을 0으로 하는 2x2인 2차원 배열 // 다양한 배열 선언 var stringArray = Array(2, {""}) // String 배열 var intArray = IntArray(2) // Int 배열 var charArray = CharArray(2, {'a'}) // Char 배열 var floatArray = FloatArray(2, {1.0f}) // Float 배열 var doubleArray = Double..
제어문 1. 자바의 if ~ else 문법과 동일하다. 다만 코틀린에서는 if문을 표현식으로 사용할 수 있다는 점이 있다 var value: Int = 0 var i: Int = 100 if (i > 0) { value = 1 } else if (i == 0) { value = 2 } else { value = 3 } var i: Int = 100 var value: Int = if (i > 0) { 1 } else if (i == 0) { 2 } else { 3 } 2. 자바의 Switch/Case 대신에 코틀린에서는 When을 사용한다. var value: Any = "A" when(value) { is String -> println("타입이 String인 경우") 10 -> println("10인..
함수 1. 함수 선언 fun 함수명(매개변수명: 타입): 반환타입 { ... } 2. 반환 값이 없는 함수 fun test(arg1: Int, arg2: Int) { println("hello") } fun test2(arg1: Int, arg2: Int): Unit { println("hello") } 3. 반환 값이 있는 함수 fun test(arg1: Int, arg2: Int): Int { return arg1+arg2 } 4. 매개변수를 초기화 하여 입력 값을 생략 할 수도 있다 fun test(arg1: Int, arg2: Int = 1004): Int { return arg1+arg2 } /* 사용 */ test(1) // 두번째 매개변수로 1004가 초기값으로 들어감 test(1, 1002..
변수 1. 자바에서는 변수를 선언하는 키워드가 기본적으로 없으나 코틀린에서는 var, val 을 사용한다 이중에서 val은 상수를 의미하여 초기값 할당 후에는 변경할 수 없다. 자바의 final을 사용하는 것과 같다. 또한 타입이 추론 가능시에는 타입을 생략해도 된다. var(또는 val) 변수명: 타입 = 값 2. 자바와 다르게 코틀린은 최상위 또는 클래스의 멤버변수는 선언과 동시에 초기화 해야 한다. 만일 원시타입이 아닌 경우 명시적으로 초기화를 나중에 하기 위해서는 lateinit 키워드를 사용할 수도 있다. var stringValue: String = "1004" // 정상 lateinit var stringValue: String // 정상 var stringValue: String // 오류..