728x90
반응형

Kotlin 15

[Kotlin 문법] 12. 후행 람다 문법

후행 람다 문법이란?일반적으로 kotlin에서 함수를 정의하고 사용하는 방식은 다음과 같다.fun exampleFunc(param1: String, param2: String){ println("Param1: $param1")} 여기서 함수의 매개변수로 함수를 넣을 수 있는데, 이때 사용하는 함수는 람다 표현식으로 넣어주게 된다. 예시는 다음과 같다.fun exampleFunction(param1: String, action: () -> Unit) { println("Param1: $param1") action()} 이와 같이 함수의 마지막 매개변수가 람다 표현식일 때, kotlin에서는 람다를 소괄호 밖으로 뺄 수 있는 문법을 제공한다.이 문법을 후행 람다 문법이라 하며, 이를 통해 코드의 ..

CS/Kotlin 2025.03.05

[Kotlin 문법] 11. 입출력 (2) - 파일 입출력

입출력에는 콘솔 입출력, 파일 입출력, 네트워크 입출력의 세 가지 종류가 있다.그 중에서 콘솔 입출력은2025.02.11 - [CS/Kotlin] - [Kotlin 문법] 10. 입출력 (1) - 콘솔 입출력, 문자열 포맷팅(출력 형식 지정)여기에서 설명하였고, 이번에는 파일 입출력에 대해 알아보겠다. 파일 읽기파일을 읽을 때는 두 가지 방법이 있다.여기서는 모두 java.io.File을 import하여 이용한다.1) readText()- 파일 전체를 읽는 방법import java.io.Filefun main() { val file = File("test.txt") val content = file.readText() println("$content")} 2) readLines()- 파일..

CS/Kotlin 2025.02.11

[Kotlin 문법] 10. 입출력 (1) - 콘솔 입출력, 문자열 포맷팅(출력 형식 지정)

지금까지는 kotlin의 전체적인 구조를 이해할 수 있도록 중요한 구조들을 공부하였다.이제부터는 코딩테스트나 개발에 직접적으로 사용할 기본적인 기능과 함수들에 대해 공부할 예정이다.그에 대한 첫 공부로, kotlin 입출력 방법에 대해 알아보겠다. kotlin에서 입출력 받는 방법은 크게 '콘솔 입출력 / 파일 입출력 / 네트워크 입출력'이 있다.다만, 네트워크 입출력은 사실 네트워크 관련 자세한 지식이 필요하기 때문에, 여기서 다루지는 않을 것이다.이번에는 '콘솔 입출력'에 대해 공부하겠다. 입력 받기입력을 받는 방법은 크게 세 가지가 존재한다.1) readLine() / readln()- 기본적인 입력을 받기 위해 사용fun main() { val s1 = readLine() // 사용자가 입력..

CS/Kotlin 2025.02.11

State(MutableState)

state란?application에서 시간에 따라 변할 수 있는 모든 값ex) 스낵바, ripple effect 등등특정 UI 요소의 상태를 나타내며, 상태가 변경되면 해당 UI가 자동으로 다시 그려지도록 함(state update)변경된 상태를 UI에 반영하기 위한 추가적인 코드 필요 x → 간결데이터 상태와 UI 코드 분리 → 유지보수 쉬움선언형 UI(jetpack compose)에서 state를 업데이트하기 위해서는 동일한 composable을 새 인수로 호출해야 함.→ state 업데이트마다 recompositionrecomposition이란?state의 변경 시 영향을 받는 일부 UI만 업데이트하는게 효율적. 따라서 해당 composable 함수만 다시 실행. → remember 이용 remem..

CS/Android 2025.02.03

null safety - "?" 문법

kotlin에서의 null-safetykotlin에서는 null-safety를 위해 ?를 사용한 문법을 사용한다. ?는 기본적으로 변수나 객체가 null을 허용할 수 있음을 나타낸다.kotlin은 null-pointer exception을 예방하기 위해 null이 허용되는 타입과 허용되지 않는 타입을 구분하는데, 그 상황에 쓰일 수 있다.?를 붙이면 해당 타입의 변수가 null을 가질 수 있음을,붙이지 않으면 null을 할당할 수 없음을 나타낸다.예를 들면, 다음과 같다.var nullableString: String? = null // null 값을 허용var nonNullableString: String = "Hello" // null 값 허용하지 않음nullableString = "Hi" //..

CS/Kotlin 2025.01.08

DATA BINDING

data binding이란?데이터 값이 직접 UI에 관여하는 방식을 의미한다. 예제예제로 버튼을 누르면 화면의 value가 1씩 증가하는 counter를 만들어 보았다. (챗지피티의 도움으로..)(회사에서 쓰고 있는 거라서 에뮬레이터의 device가 차량용인건 무시하면 된다..)\  위의 두 그림처럼, counter 값이 0에서 시작해 Increase 버튼을 누르면 1씩 증가하는 예제이다. 1. data binding을 사용하지 않은 경우더보기import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.layo..

CS/Android 2024.12.13

[Kotlin 문법] 9. Null Safety

kotlin에서는 null값을 사용하기 때문에, 이로 인해 문제가 발생할 수 있다.따라서 null safety가 존재한다. (주로 compile-time에 이용)즉, null safety는 null값에 대한 안전한 대응을 할 수 있도록 만들어주는 방식인 것이다. Nullable type원래 어떤 type이든 null을 허용하지 않지만, null값을 가질 수 있도록 허용해준 nullable type이 존재한다.이 type은 type 마지막에 '?'를 붙여 선언할 수 있다.예를 들어,var neverNull: String = "This can't be null"neverNull = null // compile error위와 같이 neverNull이라는 String 변수에 null을 대입하면, Null can..

CS/Kotlin 2024.06.13

[Kotlin 문법] 8. Class

kotlin은 객체지향을 지원한다. 따라서 클래스를 생성할 수 있다.클래스를 선언하기 위해서는 class 키워드를 사용한다. class와 propertyclass 객체의 특성은 property에 선언한다.property 선언은 class 이름 옆의 () 소괄호를 사용해 이루어지고,body 내부에 {} 중괄호를 사용하기도 한다.class example(val id: Int, val pw: String){ val name: String = ""} 인스턴스 생성 후에 변경되어야 하는 변수가 아니라면, property는 read-only인 val로 선언해야 한다.(추천사항)val이나 var 없이 property를 선언한다면 인스턴스 생성 후에는 접근 불가능하게 된다.또한, 함수에서처럼 class property..

CS/Kotlin 2024.06.12

[Kotlin 문법] 7. Lambda expression

코드를 가장 간결하게 짜는 방식이 lambda 식을 이용한게 아닐까 싶다..내가 그렇게 어려워하면서도 제대로 공부 안 했던 그녀석(?)..드디어 나타난 람다식..!!!이번에 kotlin 다시 공부하면서 제대로 공부해보자! Lambda expression의 문법Lambda expression은 다음과 같이 쓸 수 있다.fun main() { println({ text: String -> text.uppercase() }("hello")) // HELLO 출력} 이 Lambda expression은 hello라는 String을 대문자로 바꿔주는 역할을 한다. 하나하나 분석해보면우선, 람다 식은 {}안에 쓰인다.->를 기준으로 왼쪽에는 parameter와 그 type이, 오른쪽에는 함수 body가 쓰인다..

CS/Kotlin 2024.06.12

[Kotlin 문법] 6. 함수 - Unit, default parameter value, single-expression, named argument

이전에는 main 함수의 구성에 대해서만 살펴보았다.그래서 이번에는 사용자가 정의하는 함수를 만드는 법을 보려고 한다. 함수 만들기 - Unit우선, 기본 구조는 다음과 같다.fun [함수명]([변수명1]: [타입], [변수명2]: [타입], ..., [변수명]: [타입]): [리턴 타입]{ return [리턴값]}즉, 무조건 타입을 : 뒤에 써준다고 보면 된다.리턴할 값이 없으면 return type과 return 문구가 생략될 수 있다.생략된 것을 Unit type이라고 부른다.명시적으로 함수 내에서 "return" 또는 "return Unit"이라고 해도 되고, 아무것도 안 써줘도 똑같이 실행된다.함수 만들기 - default parameter value 함수를 만들 때 default value를 ..

CS/Kotlin 2024.06.07
728x90
반응형