Изящный Стринг-геттер возможен?Как? - PullRequest
1 голос
/ 19 сентября 2019

Представьте себе преобразование текста, например, чтобы уменьшить строку Scala, содержащую путь Unix,

val thePath = "this/is/a/long/path/Hello.txt"
thePath.replaceAll("^.+/", "")  // reduced to "Hello.txt"

Моя мечта (это не обязательно, но это изящно) - создать общее свойство для всей моей строкитипы данных, которые возвращают преобразование,

thePath.cutPath   // results in "Hello.txt"

есть способ определить этот неявный метод cutPath для типа данных String (в некоторой области) с помощью Scala?

1 Ответ

3 голосов
/ 19 сентября 2019

Это просто реализовать с использованием implicit class:

implicit class myAddOns(s: String) {
  def cutPath = s.replaceAll("^.+/", "")
}

thePath.cutPath // results in "Hello.txt"

Это эффективно добавляет метод cutPath к любому значению String.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...