투케이2K

90. (kotlin/코틀린) Elvis 엘비스 연산자 사용해 Null Safe Length Check 널 데이터 길이 체크 실시 본문

Kotlin

90. (kotlin/코틀린) Elvis 엘비스 연산자 사용해 Null Safe Length Check 널 데이터 길이 체크 실시

투케이2K 2022. 9. 29. 18:21

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // TODO [테스트 메소드 정의 실시]
    fun testMain(){
        Log.i("---","---")
        Log.d("//===========//","================================================")
        Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
        Log.d("//===========//","================================================")
        Log.i("---","---")


        /**
         * ------------------------------------
         * TODO [요약 설명]
         * ------------------------------------
         * 1. 엘비스 연산자 : ?: 로 표현합니다
         * ------------------------------------
         * 2. 엘비스 연산자 : 왼쪽 객체가 non-null 이면 그 객체의 값이 리턴되고, null 이라면 ?: 의 오른쪽 값을 리턴합니다
         * ------------------------------------
         * 3. 엘비스 연산자 사용 시 null 방어를 안전하게 할 수 있습니다
         * ------------------------------------
         * */


        try{

            // ------------------------------------

            // [초기 변수 및 객체 선언]
            val strData_1 : String? = "hello"
            var strData_2 : String? = null

            // ------------------------------------

            // [로직 처리 실시]
            var len_1 = strData_1?.length ?: -1
            var len_2 = strData_2?.length ?: -1

            // ------------------------------------

            // [로그 결과 출력 실시]
            Log.i("---","---")
            Log.w("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 로그 결과 출력 실시]")
            Log.i("","\n"+"[len_1 : "+ len_1 +"]")
            Log.i("","\n"+"[len_2 : "+ len_2 +"]")
            Log.w("//===========//","================================================")
            Log.i("---","---")

            // ------------------------------------

        }
        catch(e : Exception){
            Log.i("---","---")
            Log.e("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
            Log.i("","\n"+"[error : "+ e.message +"]")
            Log.e("//===========//","================================================")
            Log.i("---","---")
        }
    }
 

[결과 출력]

 

 

반응형
Comments