목록Android/Kotlin (28)
App노자
1. sequence란? sequence는 순차적인 컬렉션으로 요소의 크기를 특정하지 않고 나중에 결정할 수 있는 컬렉션이다 특정 파일을 줄 단위로 읽어서 요소를 만들 때 해당 파일의 끝을 모르면 줄이 언제 끝날지 알 수 없는 경우에 사용할 수 있다 처리 중에는 계산하고 있지 않다가 toList()나 count() 같은 최종 연산에 의해 결정된다 https://kotlinlang.org/docs/sequences.html Sequences | Kotlin kotlinlang.org 2. sequence 생성 //sequenceOf() val numbersSequence = sequenceOf("four", "three", "two", "one") 요소를 인수로 나열하는 sequenceOf() 함수로 생성..
1. Set이란? Set은 정해진 순서가 없는 요소들의 집합을 나타내는 컬렉션이다 List와 달리 동일한 요소를 중복해서 가질 수 없고 모든 요소가 유일한 값이어야 한다 헬퍼 함수인 setOf()을 이용해 불변형 Set을 생성하고 mutuableSetOf()를 사용해 가변형 Set을 생성할 수 있다 https://kotlinlang.org/docs/kotlin-tour-collections.html#set Collections | Kotlin kotlinlang.org 2. 불변형 Set fun main() { val mixedTypesSet = setOf("Hello", 5, "world", 3.14, 'c') // 자료형 혼합 초기화 var intSet: Set = setOf(1, 5, 5) // 정..
1. List란? List란 순서에 따라 정렬된 요소를 가지는 컬렉션이다 헬퍼함수인 listof()를 사용하여 값을 변경할 수 없는 불변형 List를 만들고 mutableListOf()를 사용해 값을 변경할 수 있는 가변형을 표현한다 불변형 List에서는 인자는 원하는 만큼의 가변 인자를 가지도록 vararg로 선언할 수 있다 https://kotlinlang.org/docs/kotlin-tour-collections.html#list Collections | Kotlin kotlinlang.org 2. 불변형 List fun main() { var numbers: List = listOf(1, 2, 3, 4, 5, 1) var names: List = listOf("one", "two", "three..
1. Array 클래스란? fun main() { val numbers = arrayOf(4, 5, 7, 3) val animals = arrayOf("Cat", "Dog", "Lion") for (element in numbers) { print("$element, ") } println() for (e in animals) print("$e, ") } 코틀린에서 배열은 Array 클래스로 표현된다 기본적으로 배열은 1차원적으로 순서 번호에 해당하는 인덱스와 값이 들어 있는 자료형에 따른 요소의 저장 공간을 가지고 있다 기본적인 배열을 생성하기 위해서는 ArrayOf()나 Array(), 빈 상태의 배열을 지정하는 경우 arrayOfNulls를 사용할 수 있다 https://kotlinlang.org/..
1. 제네릭이란 class Box(t: T) { // 제네릭을 사용해 형식 매개변수를 받아 name에 저장, 규칙일 뿐 꼭 T가 아니어도 된다 var name = t } fun main() { val box1: Box = Box(1) val box2: Box = Box("Hello") val box3 = Box(3) // 객체 생성 시 유추될 수 있는 자료형이 있다면 선언된 자료형인 , 는 타입추론을 통해 생략이 가능하다 println(box1.name) println(box2.name) println(box3.name) } 제네릭은 클래스 내부에서 사용할 자료형을 나중에 인스턴스를 생성할 때 확정한다 자료형을 일반화해 내부에서 그 자료형에 맞춰 교체하는 방법으로 형식 매개변수 T를 이용해 다양한 자료형..
1. 연산자 오버로딩이란? fun main() { val a = 5 val b = 10 print(a.plus(b)) // public operator fun plus(other: Int): Int } 연산자를 사용하면 관련된 멤버 메서드를 호출하는 것과 같다 a + b는 a.plus(b)라는 함수가 내부적으로 호출되는 것이다 연산자 오버로딩이란 클래스의 다형성 중 하나로 사용자의 필요에 의해 플러스와 같은 연산자에 여러 가지 다른 동작을 부여 하는 커스터마이징의 개념이다 코틀린 표준 라이브러리에 있는 Primitives.kt 파일이다 확인해 보면 operator키워드로 다양한 자료형들이 오버로딩되어 있는 것을 확인할 수 있다 https://github.com/JetBrains/kotlin/blob/ma..
1. 열거형 클래스 enum class Day(var num: Int) { Monday(1), Tuesday(2), Wednesday(3), Thursday(4), Friday(5), Saturday(6), Sunday(7) } fun main() { val day = Day.Monday when(day.num) { 1,2,3,4,5, -> println("weekDay") 6,7 -> println("weekend") } } 열거형 클래스란 여러 개의 상수를 선언하고 열거된 값을 조건에 따라 선택할 수 있는 클래스이다 열거형 클래스는 enum키워드와 함께 선언할수 있고 자료형이 동일한 상수를 나열할 수 있다 각 상수는 enum 클래스의 객체로 취급되고 값은 매개변수를 통해 초기화될 수 있다 https:..