3
아래 워크 시트에서 사용자 정의 문자열 보간을 작성했습니다. 당신은 당신이 통과 또는 문자열 보간에 대한 추가 인수를 사용하려면 어떻게 변수 어떻게 변수를 사용자 정의 문자열 보간기에 전달합니까?
- :
object WSLookup { implicit class LookupSC(val sc: StringContext) extends AnyVal { def lookup(args: Any*): String = { val strings = sc.parts.iterator val expressions = args.iterator var buf = new StringBuffer(strings.next) while (strings.hasNext) { buf append doLookup(expressions.next.toString) buf append strings.next } buf.toString() } def doLookup(s: String): String = { // Just change the string to uppercase to test. s.toUpperCase } } val x = "cool" val testString = "Not $x" lookup"How $x" // lookup testString //<--- See question 1 }
나는이에 대한 두 가지 질문이 있습니다. 예를 들어 내 문자열 보간 기가 파일에서 변수를 찾는 데 사용되지만 파일 이름을 즉시 지정하고 싶다고합시다.
암시적일 필요는 없습니다 (유스 케이스에 따라 편리 할 수도 있고 그렇지 않을 수도 있습니다). 두 번째 매개 변수 목록이 작동합니다. 어쨌든 lookup 메서드는 문자열을 반환 할 필요가 없으므로 많은 가능성이 열려 있습니다. –
두 번째 매개 변수 목록에 대한 도움말을 보내 주셔서 감사합니다. 예, 보간 결과는 모든 클래스 일 수 있습니다. 단지 샘플 일뿐입니다. –