Kotlin 6

[Kotlin] 목록에서 랜덤으로 1개만 가져오기 (response : objectDTO)

DB 에 저장된 찌개 목록중에서 랜덤으로 1가지만 가져오는 메서드 getRandomJjigae() 를 만들어보겠다. 1. 모든 찌개 정보 가져오기 2. 찌개의 Id만 List 에 담기 3. List 에 담긴 id 중 랜덤으로 1개 고르기 (random()) 4. 랜덤으로 선택 된 id 의 객체 가져오기 JpaRepository 클래스의 findAll() 메서드를 사용하면 Iterable 의 형태로 반환된다. List 형태로 반환받기 위해서 Repository 인터페이스에서 쿼리를 작성한다. 가져온 List 를 for 문을 돌려서 Object.id 만 List 에 담아줄거다. Kotlin 에서 List 는 읽기 전용이다. 때문에 값을 변경하기위한 List 인 mutableList 를 사용할거다. 선언을 먼..

Kotlin 2022.11.22

[Kotlin] 유용한 함수 with / run

▶ with with 함수는 인자로 받는 객체를 this 로 사용할 수 있다. class withTestClass { var number = 10 fun sum(a:Int,b:Int): Int{ return a+b } } fun main(args:Array){ var testClass = withTestClass() var num = with(testClass){ number = number + 10 sum (10,number) } println(num) //30 } 객체를 생성하고 이것을 with 함수의 인자로 넘겨받았다. 그리고 with 로 시작한 코드블록에서 실제로 testClass 의 객체를 this 로 사용할 수 있게 되었다. 멤버변수인 number 의 값을 10 늘려주고, sum 메소드를 클래..

Kotlin 2022.11.15

[Kotlin] 데이터클래스 / 컬렉션

※ 데이터 클래스 단순히 값을 담는 클래스 자바 : VO, DTO 코틀린 : 데이터클래스 ㄴ 기본적으로 DTO 가 제공되며, getter 도 자동적으로 제공한다. 하지만 setter는 변수가 val 일 경우 제공하지 않는다. ㄴ 상수인 값을 변경하고자 할 때에는 copy 메소드를 통해 값이 변경된 새로운 객체를 생성한다 ▷ 데이터클래스의 선언 data class Book1(val title:String, val author:String, val price:Int) 하지만 이렇게 선언한다면 매개변수가 없는 생성자로, 객체생성을 하지 못한다. ▷ 매개변수가 없는 빈 객체를 만들고싶다면 data class Book2( val title: String = "No Title", val author: String ..

Kotlin 2022.11.14

[Kotlin] 예외처리 / 람다 / 클래스

※ 예외 처리 ▶ try-catch 코틀린에서는 try-catch를 표현식처럼 사용할 수 있다. try-catch 로 리턴값을 전달할 수 있으며, 그 값을 별도의 변수나 상수에 할당할 수 있다. val tcNumber = try{ "10A".toInt() }catch (e:NumberFormatException){ println("예외발생") 0 } println("tcNumber의 값은 $tcNumber 입니다") ※ 람다 ▶ 고차함수 함수를 일반 자료형이나 객체처럼 인자로 받거나, 리턴할 수 있는 함수이다. 흔히 매개변수에 오는 함수를 콜백함수라고 한다. 콜백함수는 고차함수로 인해 되불려지기 때문에 이렇게 불린다. (인자타입1, 인자타입2) -> 반환형 예제1) ()->Unit //인자도 없고 리턴값..

Kotlin 2022.11.14

[Kotlin] 조건문 / 반복문

아래는 박중수님의 자바개발자를 위한 KOTLIN 책을 보고 정리한 내용입니다. ※ 조건문 ▶ if var num:Int = 10 if(num == 0){ println("num은 0입니다") }else if(num == 10){ println("num은 10입니다") }else{ println("num은 0과 10이 아닙니다") } 자바와 다른 것은 코틀린은 삼항연산자가 없다. But if 문을 삼항연산자처럼 값을 할당하는데 사용할 수 있다 var a = 10 var b = 20 var c = if(a==b){ println("if 문의 코드블럭실행") "a는 b와 같은 값입니다" }else{ println("else 문의 코드블럭실행") "a는 b와 다른 값입니다" } //=> a 와 b는 다른 값이기..

Kotlin 2022.11.14

[Kotlin] 함수 / 변수 / 자료형 / 배열

아래는 박중수님의 [ 자바개발자를 위한 KOTLIN ] 책을 보고 정리한 내용입니다. ※ 함수 - fun 키워드로 함수를 선언함 fun 함수명(변수명:타입, 변수명:타입...) : 반환형{ 내용... return 반환값 } fun sum(a:Int, b:Int) : Int{ return a + b } fun sum(a:Int,b:Int) = a+b 함수 내용이 단일 행일 경우는 리턴타입을 생략 할 수 있다. ▶ void = Unit 반환타입이 없는 함수의 경우 반환형태에 Unit 이라고 쓴다 (자바에서 메소드를 선언할 때 void 로 사용하는 것과 같은 뜻) fun printSum(a:Int, b:Int) : Unit{ println(a+b) } 아무것도 적지 않으면 Unit 이 기본적으로 리턴 됨 fu..

Kotlin 2022.10.24