분류 전체보기 (169) 썸네일형 리스트형 [Kotlin] 4장. 프로그램의 흐름 제어 조건문 블록의 표현식이 길어질 때 조건문 블록의 표현식이 길어지면 중괄호로 감싸야한다. 또한, 람다식처럼 블록의 마지막 표현식이 변수에 반환되어 할당이 된다. 위의 예제에서 readLine()은 콘솔로부터 문자열을 입력받는 함수로, non-null 단정 기호를 통해 null 값을 받지 않으며 toInt를 통해 Int 타입의 값만 입력받도록 제한하였다. 입력받은 값에 따라 a>b이면 max는 String 타입, 123 문자열을 출력하게 되고, a= && = 0 && a 수행할 문장 인자에 일치하는 값 혹은 표현식2 -> { 수행할 문장 } ... else -> 수행할 문장 } 위와 같이 사용할 수 있으며, 수행할 문장이 한 줄일 경우 중 괄호를 생략할 수 있다. 인자가 없는 경우에는, 인자에 일치하는 값 .. [Kotlin] 3장. 함수와 함수형 프로그래밍 3 - 다양한 함수 익명 함수 일반 함수이지만 이름이 없는 함수. 익명 함수의 경우, 함수로 따로 선언하여 사용하는 것이 아닌 변수 선언시에 그대로 넣어서 사용 가능한 함수이다. add1의 경우 익명 함수를 생략하지 않고 그대로 사용한 것이다. 매개 변수에 자료형을 써주면 add2 처럼 선언부의 자료형이 생략 가능하고, add3와 같이 람다식 함수와 비슷하게 선언 또한 가능하다. 인라인 함수(Inline Function) 인라인 함수는 이 함수가 호출되는 곳에 함수 본문의 내용을 모두 복사해 넣어 함수의 분기 없이 처리되기 때문에 코드의 성능을 높일 수 있다. 하지만, 인라인 함수는 코드가 복사되어 들어가기 때문에 내용은 대게 짧게 작성해야 한다. 람다식 매개변수를 가지고 있는 함수에서 동작한다. 인라인 함수로 선언되는 경.. [Kotlin] 3장. 함수와 함수형 프로그래밍 2 - 고차 함수와 람다식 람다식 일급 객체의 특징을 가진 이름 없는 함수. 일급 객체의 특징은 다음과 같다. 함수의 인자로 전달 가능한 객체 함수의 반환값에 사용할 수 있는 객체 변수에 담을 수 있는 객체 고차함수 일급 객체 혹은 일급 함수를 서로 주고받을 수 있는 함수. highFunc의 매개변수에 람다식이 들어가고, highFunc 함수에서 sum을 통해 람다식을 매개변수로 받아들여서 사용하는 형태의 고차함수이다. 위의 예제를 순서대로 해설하면 다음과 같다. highFunc 함수에 3개의 매개변수가 들어간다. x,y 의 2가지 변수를 받아서 x + y 의 결과 값으로 반환해주는 람다식과, Int 타입의 변수 100, 10 highFunc 함수에서 람다식을 sum 이라는 변수를 통해 받는다. sum은 Int 타입 변수 2개를 .. [Kotlin] 3장. 함수와 함수형 프로그래밍 1 - 함수형 프로그래밍 Kotlin 함수의 구조 fun 키워드 : 모든 함수는 fun 키워드로 시작 func : 함수 이름 (a: Int, out: (Int) -> Unit) : 매개변수 정의. a는 Int 타입, out은 Int타입을 매개변수로 받고 아무것도 반환하지 않는 람다형 함수를 매개변수로 가진다. : String : 반환 값의 자료형. func 함수는 String 타입의 변수를 반환한다. 아무것도 입력하지 않으면 반환 값이 없는 것이다. println(~) .. : 함수 본문 return ~ : 반환 값. 반환 타입에 맞는 값을 반환. 함수의 간략화 중괄호(함수의 본문)이 한줄로 return 값만 있는 경우 sum2, sum3과 같이 중괄호와 return을 생략하고 사용할 수 있다. 반환 값이 없는 함수 반환 값이 .. [Kotlin] 2장. 변수와 자료형, 연산자 2 - 변수와 자료형 변수 선언 Kotlin에서 변수 선언은 val , var 라는 키워드를 사용하여 선언할 수 있다. val : 최초로 지정한 변수의 값으로 초기화 하고 더이상 바꿀 수 없음. 초기화 후 읽기 전용 변수가 된다. var : 최초로 지정한 변수의 초깃값이 있더라도 바꿀 수 있음. var로 선언한 value3의 경우 value4로 다시 변수 값을 초기화 하여 사용할 수 있지만, val로 선언한 value1,2의 경우 변수 값을 바꾸려고 하면 위와 같이 바꿀 수 없음을 알 수 있다. 변수를 선언할 때, val value: String = "value1" val value2: Int 와 같이 자료형을 명시하여 선언할 수 있지만, val value3 = 3 과 같이 코틀린이 자료형을 추론하여 설정해주기 때문에 자료형.. [Kotlin] 2장. 변수와 자료형, 연산자 1 - 코틀린 패키지 Kotlin 파일 생성 파일 이름과 생성한 class 이름이 같은 경우 Project 창에서 파일의 확장자를 표시하지 않는다. 하지만, 파일 이름과 생성한 class 이름이 다르거나, 파일 이름과 같은 class가 존재하지만, 다른 class 도 함께 존재하는 경우에는 Project 창에서 파일의 확장자를 표시한다. 위의 이미지의 경우 File1 파일은 Person Class만 구현했기 때문에 좌측의 Project 화면에서 .kt가 붙어서 나오는 것을 확인할 수 있다. File1.kt 안에 class File1(val nem: String) 과 같이 파일 이름과 일치하는 class를 작성해도 마찬가지로 .kt 확장자를 확인할 수 있다. 사용자 클래스 가져오기 Kotlin에서는 다른 패키지의 요소를 imp.. [Kotlin] 1장. 코틀린 시작하기 Kotlin 공부 시작. 사용 교재 아주 기본적인 내용은 건너뛰고 정리하여 게시글을 작성할 예정. 책에 나와있는 개발 툴을 사용하여 진행. JetBrains사의 IntelliJ IDEA를 사용. https://www.jetbrains.com/idea/download/#section=windows Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains Download the latest version of IntelliJ IDEA for Windows, macOS or Linux. www.jetbrains.com 1장은 개발환경 세팅에 대한 내용만 있으므로, 필요하다 생각되는 것만 작성하도록 한다. Tool > Kotlin.. [Android] Room 라이브러리 Room Library AAC 중 하나 SQLite DB를 보다 쉽게 사용할 수 있도록 도와주는 ORM(Object Relational Mapping) 라이브러리 Room의 특징 컴파일 도중 SQL에 대한 유효성 검사 상용구 코드(Boiler Plate Code) 없이 매핑 가능 LiveData와 RxJava의 Flowable을 위한 observation으로 생성하여 동작 가능. Room의 구성 요소 Database : 데이터 베이스 객체. 객체를 생성하는 비용이 크기 때문에 Singleton으로 구현하는 것이 좋다. Entity : Database 내의 테이블 Dao(Data Access Object) : 데이터 접근 객체. DB를 통해 수행할 작업(CRUD)을 함수로 정의한 클래스로 interface.. 이전 1 ··· 15 16 17 18 19 20 21 22 다음