본문 바로가기
728x90
반응형

컴퓨터 언어/Kotlin13

[Kotlin] 데이터 클래스(data class)의 장점 코틀린 클래스에는 데이터 클래스라는 것이 존재한다. 주로 데이터들의 집합을 표현하기 위해서 사용한다. 예를 들어 학생의 정보를 학번, 이름으로 표현한다고 하면 일반적인 클래스의 경우 다음과 같이 사용한다. class Student(number : String, name : String){ var sNumber = number var sName = name } 동등성 아래와 같이 두 Student 인스턴스를 생성하자. val s1 = Student("123","chulsoo") val s2 = Student("123","chulsoo") println(s1==s2) 위 코드의 결과는 False이다. 프로퍼티의 값은 같으나 결과적으로 서로 다른 객체이기 때문이다. 즉 "=="연산은 동일성을 체크하는 것이다... 2022. 12. 22.
[Kotlin] 영역 함수 (run, let, with, apply, also) 코틀린에는 영역 함수라는 것이 존재한다. 영역 함수를 사용하면 특정 객체에 대한 식이라는 것을 알 수 있어서 가독성이 좋아진다. 영역 함수 모두 사용하는 목적은 비슷하지만 사용 방식에 있어서 약간의 차이점들이 존재한다. 객체 반환 여부에 따라서 구분해보자면 run, let, let과 apply, also로 나눌 수 있다. 먼저 영역 함수를 사용하지 않을 때와 사용할 때를 비교해보겠다. 사용하지 않을 때 class Student(){ var number = "" var name = "" fun printInfo(){ println("your number : $number your name : $name") } } val s = Student() s.number = "1234" s.name = "chulso.. 2022. 12. 21.
[Kotlin] 고차 함수와 람다 함수 고차 함수란 함수를 인자로 받거나 함수로 반환하는 함수이다. 람다 함수의 다른 뜻은 익명 함수로 함수를 단순하게 표현할 수 있다. 불필요한 연산을 줄여 메모리를 아낄 수 있다는 장점이 있다. 이제 고차 함수의 인자로 람다 함수를 받는 방법을 공부해보려한다. 첫 번째와 두 번째 인자로 정수를 받고 세 번째 인자로 연산을 정의한 함수를 받으려고 한다. 세 번째 인자에 따라서 두 정수를 더하거나 빼거나 곱하는 함수를 만들어보려한다. fun calculate(a:Int,b:Int,op:(Int,Int)->Int){ println(op(a,b)) } 세 번째 인자의 경우 정수 두 개를 받아서 정수를 반환하는 형태이다. 이제 이를 사용하기 위해서는 calculate 함수를 호출할 때 세 번째 인자로 람다 함수를 주.. 2022. 12. 20.
[Kotlin] 클래스 사용법 코틀린도 다른 객체 지향 언어와 마찬가지로 클래스를 사용할 수 있다. class Student(name:String, age:Int){ val sName:String = name val sAge:Int = age fun printName():String{ return sName } fun printAge():Int{ return sAge } } 클래스의 멤버 변수를 프로퍼티(property)라고 하고 멤버 함수를 메소드(method)라고 한다. 클래스를 정의할 때 생성자의 경우 주 생성자와 부 생성자로 나뉜다. 위의 Student 클래스는 주 생성자이고 부 생성자는 클래스 내부에서 constructor를 사용하여 만들 수 있다. 코틀린 클래스에는 몇 가지 규칙이 존재한다. 프로퍼티는 반드시 초기화를 해야.. 2022. 12. 8.
728x90
반응형