본문 바로가기

언어43

[Kotlin 문법 종합] - 널 세이프티 @@수정하기 1. 널 세이프티 : Null 예외로부터 안전한 설계를 위해 자료형에 Null 여부를 명시 ?, !!, ?. , ?: 1) ? null 할당 허용 기호 * null 허용 여부에 따라 String과 String? 는 서로 다른 자료형임 // null을 저장하지 않고 설계하려면 lateinit var 로 대체할 수 있음 { println("이름을 입력해주세요") while(true) { try { var originName = readLine() if(originName?.first() != '_' && originName?.first() != '!') { //.first()는 첫번째 인자 반환 return originName } else { println("이름을 다시 입력해주세요") } } catch(e.. 2024. 3. 6.
[Kotlin 문법 종합] - 지연 초기화 (@@0313 추가중~) 1. 지연 초기화 : 클래스 설계 시 초기의 값 설정하기 애매할 때, 나중에 대입 (+) 메모리의 효율적인 사용 1) 변수 --> lateinit - isInitialized --> 변수 사용 전, 초기화되었는지 확인해 true/false 반환 ( !::name.isInitialized) - 값이 아니라 참조형태로 사용해야 하기에 this::~ 또는 :: 붙임 // var에만 사용 가능, 프로퍼티에 대한 게터, 세터를 사용할 수 없음(초기화된 뒤에는 수정 가능하긴 한 듯) fun main(){ var s1 = Student() s1.name = "참새" //이 때 초기화됨 s1.displayInfo() s1.age = 10 s1.displayInfo() } class Student { lateinit v.. 2024. 3. 6.
[Kotlin 문법 종합] - 예외처리 # 수정하기 1. 예외처리 * 예외 : 런타임 에러 * 오류 : 컴파일 에러 (실행 전) (+) 안정성 1) try-catch : 완벽한지 애매한 부분을 try로 감싸기 fun method1() { try { // } catch(예외종류) { //예시 = e:java.lang.NumberFormatException // } } while(true) { //무한반복. break 작성 필수 try { var num1 = readLine()!!.toInt() println("내가 입력한 숫자는 ${num1}입니다") break } catch(e:java.lang.NumberFormatException) { println("숫자를 입력하세요") } } while(true) { try { var num1 = readLine(.. 2024. 3. 6.