Kotlin
코틀린 스터디 - 6장
코틀린 스터디 - 6장
2023.08.20문자열 검색 속성과 메서드 메서드 get : 인덱스를 전달해서 검색한다. 메서드 first/last : 문자열의 첫 번째 원소와 마지막 원솟값을 조회할 때 사용한다. 속성 lastIndex : 문자열의 마지막 인덱스를 제공한다. 속성 length : 문자열 원소의 개수를 조회하는 속성이다. 메서드 getOrElse : 범위를 초과했을 때 람다표현식을 실행해서 초깃값을 제공한다. 메서드 getOrNull : 없는 인덱스를 조회하면 예외가 아닌 널을 반환한다. println(myString.getOrElse(myString.length, {'0'})) //범위를 벗어날 경우 초깃값 처리 println(myString.getOrNull(myString.length)) //범위를 벗어날 경우 null //0 /..
코틀린 스터디 - 5장
코틀린 스터디 - 5장
2023.08.13주 생성자 다른 프로그램 언어와의 클래스 정의의 차이점은 주 생성자를 머리부에 정의하는 것이다. 클래스 이름 옆에 constructor 키워드를 사용하여 정의할 수 있고 생략 가능하다. private일 경우 생략 불가하다. 주 생성자 내부에 매개변수를 정의할 수 있고 매개변수 앞에 val이나 var을 붙이면 속성으로 정의한다. 주 생성자에 대한 초기화는 init 블록을 사용한다. 주 생성자가 호출될 때 init 블록 내부의 코드가 실행된다. class Person (name:String, age:Int){ val name = name var age = age } class People(val name: String, val age: Int) 보조 생성자 본문에 constructor 이름으로 보조 생성자를..
코틀린 스터디 - 4장
코틀린 스터디 - 4장
2023.08.06함수 몸체부 내에 정의할 수 있는 대상 지역 함수 지역 클래스: 보통 함수 기능이 커지면 클래스로 변환하여 정의해서 사용하므로 실제 사용할 일은 별로 없다. object 표현식으로 정의해서 객체를 사용할 수 있다. 단일 표현식 함수 코드 블록의 하나의 라인으로 처리되는 경우를 단일 표현식이라고 한다. 간단한 표현식만 있는 경우는 블록을 생략하고 한 줄로 작성하는 단일표현식으로 작성할 수도 있다. 보통 = 연산자 다음에 표현식을 사용해서 처리한다. 단일 표현식으로 함수 코드 블록을 구성하면 단일 표현식을 추론해 반환 자료형을 추론할 수 있으므로 반환 자료형을 생략한다. 함수 오버로딩 함수 식별자는 함수 이름과 시그니처인 함수 매개변수의 개수와 자료형으로 구성한다. 그래서 같은 이름의 함수를 여러 개 정의할..
코틀린 스터디 3장
코틀린 스터디 3장
2023.07.30비교연산자 비교연산자도 연산자 표현과 메서드 처리 두 가지 방식을 제공한다. 비교연산자를 메서드로 사용할 때는 compareTo 메서드가 실행되며 이 메서드의 결과는 기본으로 0, 음수, 양수로 나뉜다. 결괏값 설명 0 두 항이 동일한 경우 negative integer 첫 번째 항이 작은 경우 positive integer 첫 번째 항이 큰 경우 val a = 100 val b = 20 println(a.compareTo(b) >= 0 ) // 두 수의 크기 비교 // true 포함연산자 특정 범위에 속한 값에 포함 여부를 확인할 때는 이 연산자를 사용한다. 연산자 표현식 상응하는 메서드 in a in b b.contains(a) !in a !in b !b.contains(a) var height = ..
코틀린 스터디 - 2장
코틀린 스터디 - 2장
2023.07.23리터럴 변수에 할당되거나 표현식에서 사용되는 고정된 값 매직 리터럴(넘버)을 사용하면 해당 숫자가 어떤 의미인지 바로 파악이 어렵습니다. 따라서 이를 지양하고 상수를 사용해서 직관성을 높이는 것이 좋습니다. 위의 코드는 제가 작업하고 있는 프로젝트에서 counter 변수에 사용되고 있던 매직 넘버를 상수로 리팩토링한 예시입니다. val, var 변수를 선언할 때 value를 재할당할 수 있는 경우 var을 사용하고, 그렇지 않을 경우 val을 사용합니다. time은 var로 선언된 변수입니다. "val로 선언한 변수는 value 재할당이 안 되지 않나? time은 가변적이어서 hour 값이 계속 바뀌니까 hour, minute, second는 var로 선언돼야하는 거 아닌가?"라는 생각이 들면서 헷갈릴 ..
Kotlin_에어비앤비