티스토리 뷰

반응형

 

자바에서는 여러 클래스에서 사용해야하는 중복된 코드를 Utils 클래스로 빼서 사용하기도 하는데

코틀린에서도 Utils 클래스로 분리가 필요한 메소드 사용이 필요해졌다.

 

코틀린에서는, 이런 클래스를 따로 빼지 않고도 Util 역할을 하는 메소드 사용이 가능하다.

그걸 바로 확장 함수라 칭한다.

 

대신에 확장 함수는 최상위 수준의 클래스에 위치하기만 하면 된다.

그 확장 함수는 그 파일의 맨 앞에 정의된 패키지의 멤버 함수므로,

다른 패키지에서 사용할 시에는 그 확장 함수가 정의된 패키지를 임포트해서 사용할 수 있다.

 

 

 

사용법은 간단하다.

fun 확장할 클래스.함수명: 리턴할 타입 { return 리턴 값 }

 

예를 들어, String 클래스를 확장하여 String 앞에 hashtag 처럼 '#'을 붙이고 싶으면 아래처럼 확장 함수를 작성해서

fun String.hashtag(): String {
	return "#$str"
}

패키지 내 클래스 곳곳에서 해당 함수를 호출하여 사용 가능하다.

fun createHashtag(hashtag: String): String {
	val array: Array<String> = hashtag.split(" ".toRegex()).toTypedArray()
	var result = ""
	for (str in array) {
		result += str.canonicalDomain()
	}
	return result
}

 

 

 

위 함수를 호출하면 결과는 다음과 같다.

println(createHashtag("집가고싶다 칼퇴소망 현실은야근"));
// #집가고싶다 #칼퇴소망 #현실은야근

(참고 : https://voiddani.tistory.com/4https://0391kjy.tistory.com/18)

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함