반응형 Programming Language/Kotlin11 [코틀린 Kotlin] 상수 선언 및 접근 방법( 동반 객체companion object와 패키지 변수) 1. 동반 객체 클래스 안에 다음을 작성해주면 public class MainActivity{ companion object{ const val Bonus:Int = 100 } } 다른 클래스에서도 MainActivity.mBonus로 바로 접근이 가능하다. 2. 패키지 변수 패키지 변수로 선언 후 패키지 import하여 직접 접근이 가능하다. constants라는 새 패키지를 마는 후 그 안에 새로 Constants라는 코틀린 파일을 만들어주었다. 그 안에 변수 mBonus를 작성한다. 그러면 다른 클래스에서 바로 사용이 가능하다. 이게 가능한 이유는 우리가 패키지 변수에 접근하려고 할때 코틀린에서 자동으로 패키지를 import해주기 때문이다. import 부분을 확장해서 살펴보면 가장 아랫줄에 패키지.. 2021. 7. 4. [코틀린 Kotlin] 여러가지 형변환 및 is, as 사용법 is : 자료형 체크 as : 자료형 변환 val input1:Any = "안녕" if ( input1 is String){ // is로 자료형 체크,Int, Float, String 등이 사용가능, // !is String은 String이 아닌 자료형을 의미! val output2:String = input1 as String // as로 any자료형을 string으로 변환 } val output3:String? = input1 as String? // 이와 같이 널허용자료형으로도 변경 가능 val output4 = input1 as? String // as?는 변환 시 null이 반환될 수 있을 때 예외 상황을 만들지 않고 null을 반환 val output5 = input1 as? String ?:.. 2021. 7. 4. [코틀린 Kotlin] 널Null 허용 자료형 예시, 느낌표 두개(!!), 물음표(?)의 의미와 사용법 프로그램의 수많은 오류 중 대표적인 오류로 NPE(Null Pointer Exception)가 있다. 코틀린은 Null 처리를 위해 다양한 방법을 제공한다. var name : String? 위와 같이 자료형 뒤에 ?를 붙이면 널허용 자료형이 된다.(wrapping) 원래의 자료형으로 언래핑하려면 변수명!!을 해주면 된다. name!! !!은 널이 아님을 명시해주는 표시이다. 그럼 다음을 보자. var name :String? = null val nameLength :Int = name.length // 오류 발생! 위의 코드를 작성하면 오류가 발생한다. name에 널허용이 되어있는한 length에 접근할 수 없다. var name :String? = "Kim" val nameLength :Int = n.. 2021. 7. 4. [코틀린 Kotlin] 변수 초기화 방법 및 지연 초기화 방법 변수는 두가지 타입이 존재한다. var : 값의 변경이 가능한 변수 val : 읽기 전용 변수(값 변경이 불가) 1. class 안, 함수의 바깥에 변수를 생성할 때는 val name: String = "Kim"와 같이 작성해주면 된다. 2. 이때 등호 오른쪽을 보고 자료형을 추론할 수 있는 경우에는 val name = "Kim"과 같이 자료형 생략이 가능하다. 3. 기본적으로는 변수가 만들어짐과 동시에 초기화를 해줘야 하는데 lateinit var name: String 으로 작성을 해주면 나중에 초기화가 가능해진다. * lateinit에는 val 사용 불가 4. 함수 내에서 변수를 생성할 때는 초기화를 하지 않아도 가능하다. var age :Int 와 같이 작성해도 오류가 발생하지 않는다. class.. 2021. 7. 4. [코틀린 Kotlin] 람다식 사용법(예제 코드) 람다식은 코틀린이 가지고 있는 특별한 함수의 형태다. 람다식을 적절히 이용하면 훨씬 간결한 코드 작성이 가능하다. 다음 코드는 람다식의 기본적인 예시이다. result1, result2, result3는 모두 동일한 결과를 갖게 된다. // 일반 함수 활용 fun add1(a:Int, b:Int):Int{ return a+b } val result1 = add1(10,10) fun add2(a:Int,b:Int) = a+b val result2 = add2(10,10) //람다식 활용 val add3 = {a:Int, b:Int -> a+b} val result3 = add3(10,10) add3라는 변수는 람다식을 할당받았다. 이렇게 람다식은 함수의 의미를 갖지만 변수에 할당이 가능하다. 람다식은 기본.. 2021. 6. 14. 이전 1 2 다음 반응형