포스팅 OS : Mac
검색어 : 코틀린(Kotlin), 문자열 템플릿(String Template)
▶︎ 이전 포스팅 목록
2018/02/10 - [Android_Kotlin] - [Android Kotlin] 안드로이드 스튜디오(Andorid Studio)에 코틀린(Kotlin) 개발환경 셋팅
2018/03/14 - [Android_Kotlin] - [Android Kotlin] 텍스트뷰(TextView)와 버튼(Button)을 사용한 헬로 코틀린
2018/03/14 - [Android_Kotlin] - [Android Kotlin] 함수와 변수를 이용하여 에디트텍스트(EditText)에 입력한 값 중 큰 값 구하기
이번에는 문자열 템플릿에 대해 포스팅하겠습니다. 간단한 기능이므로 포스팅도 매우 간략하게 쓰겠습니다.
문자열 템플릿은 사실 이전 포스팅에서 사용한 적이 있습니다.
2018/03/14 - [Android_Kotlin] - [Android Kotlin] 텍스트뷰(TextView)와 버튼(Button)을 사용한 헬로 코틀린
바로 위 포스팅에서 몰래(?) 사용했었죠.
사용한 소스 코드를 한번 보시죠.
btn_print_02.setOnClickListener {
// 변경 불가능한 변수 - val
// 자바로 말하면 final
val nameStr : String = "Kotlin_02"
txtHellow.setText("Hellow $nameStr")
}
위 소스는 버튼 클릭시 'Hellow Kotlin_02' 이라는 메시지를 출력하는 소스입니다.
txtHellow.setText("Hellow $nameStr")
바로 여기가 문자열 템플릿을 사용한 부분이죠. 이렇게 '$' 문자를 사용해서 nameStr 변수를 따옴표(" ")안에서 바로 사용할 수 있습니다. 자바에서는 없던 기능이죠.
자바에서는 "Hellow" + nameStr 이렇게 사용했던 것이 '$' 문자 하나로 간단하게 사용이 가능해졌습니다.
문자열 템플릿에서 사용할 수 있는 대상은 변수 이름만으로 한정되지 않습니다. 복잡한 식도 중괄호({ })로 둘러싸서 문자열 템플릿 안에 넣을 수 있습니다.
btn_print_02.setOnClickListener {
// 변경 불가능한 변수 - val
// 자바로 말하면 final
val nameStr : String = "Kotlin_02"
txtHellow.setText("Hellow ${if(nameStr.equals("")) "Kotlin" else nameStr}")
}
이런식으로 ${ } 중괄호 안에 식을 넣어 사용이 가능합니다.
대체로 $를 그냥 사용하는 것 보다는 ${ } 처럼 중괄호를 써서 사용하는 습관을 들이는 것을 추천합니다. 그 이유는 문자와 변수명의 구분이 확실하고 코드를 읽을 때도 문자열 템플릿 안에서 변수가 쓰인 부분을 더 쉽게 식별이 가능하기 때문입니다.
문자와 변수명 구분이 확실하다는 의미는 아래 소스를 보시면 이해가 쉽습니다.
"$nameStr님 안녕하세요."
위와 같이 사용하면 에러가 납니다. 이유는 간단합니다. 코틀린에서는 자바와 마찬가지로 한글(한글 뿐 아니라 '글자(letter)'로 분류할 수 있는 모든 유니코드 문자)을 식별자에 사용할 수 있어서 변수 이름에 한글이 들어갈 수 있습니다. 위 소스에서 실제로 변수명은 'nameStr'이지만 컴파일러는 'nameStr님'으로 인식해서 변수가 없다고 에러가 나는 겁니다.
"${nameStr}님 안녕하세요."
이렇게 사용하면 간단하게 해결 됩니다. 보기에도 변수라는게 인식하기 쉽지 않나요?
문자열 템플릿은 자바에서 없던 기능인 만큼 유용하게 활용이 가능할 것으로 보입니다. 자바에서 " " + " " 남발해서 보기에도 안좋고 보기도 힘든 상황을 많이 겪어보신 분들이라면 쌍수를 들고 환영할만한 기능임에는 분명합니다.
'Developer > Android' 카테고리의 다른 글
[Android Kotlin] 클래스, 프로퍼티, 커스텀 접근자 - 라디오 버튼(Radio Button) (0) | 2018.06.05 |
---|---|
[Android Library] 빌드 가능한 안드로이드 라이브러리 모듈 생성 후 다른 프로젝트에 참조하기 (8) | 2018.04.11 |
[Android Kotlin] 함수와 변수 - 에디트 텍스트(Edit Text) (0) | 2018.03.14 |
[Android Kotlin] 헬로 코틀린 - 텍스트뷰(TextView), 버튼(Button) (0) | 2018.03.14 |
[Android Gradle] 디버그 또는 릴리즈 빌드 벨류 사용법 (0) | 2018.03.09 |