본문 바로가기

전체 글90

[Kotlin 문법 종합] - 자료형 변환, 타입확인 @@@ 수정하기 1. 자료형 변환 1) 일반 자료형간의 변환 (1) 숫자 자료형끼리 = .to자료형() var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() (2) 문자열 -> 숫자 @@@@근데 Integer.parseInt 안해도 toInt만 해도 되던데...?? 뭐지 다시보기 var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) //int로 변환 var num6 = strNum6.toDouble() //double로 변환 2) 객체 자료형간의 변환 : 상속관계에서 가능 (1) 업 캐스팅 (부모클래스의 자료형을 가지고 자식클래스의 객체 생성) .. 2024. 3. 6.
[Kotlin 문법 종합] - Single-expression function, 싱글턴 (@@질문하기) 1. Single-expression function : 람다식을 이용해 메소드를 간결하게 정리 가능 * 람다식 구조 : 다른 함수의 인자로 넘김 / 함수의 결과값으로 반환 / 변수에 저장 하는 함수 {매개변수1, 매개변수2... -> 코드 } * 예시 1 : 세 개의 숫자를 받아 평균을 반환하는 함수(를 람다식으로 정의) fun add(num1:Int, num2:Int, num3:Int) = (num1+num2+num3)/3 fun main(){ println(lambdaExample({x,y -> x+y}, 20, 30)) //람다식 함수를 인자로 넘김 } fun lambdaExample(sum: (Int, Int) -> Int, a: Int, b: Int): Int = sum(a, b) //위와 동.. 2024. 3. 6.
[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.