Конечно, я могу только догадываться, чего вы действительно хотите достичь, но я предполагаю, что вы не просто хотите сопоставлять конкретные URL-адреса, но также извлекаете информацию из заданных строк.Например, когда задано "/foo/21"
, вы не просто хотите знать, что это соответствует некоторому "foo" / 21
, но вы хотите сделать что-то со значением 21.
Я нашел процесс сопоставления URI в Lift toбыть весьма полезным, так что, возможно, это подходит для вашего случая использования.(Я использую очень упрощенную версию, конечно.) Это сделано со списками, которые немного упрощают сопоставление, но это также означает, что вам придется использовать ::
вместо /
.
Но не в этом суть: то, что я хочу показать, - это преимущество , а не , использующее неявные преобразования и мощь экстракторов.неявное преобразование Int
в String
вы можете получить целочисленное значение из строки тогда и только тогда, когда оно конвертируемо, и, конечно, использовать его немедленно.Очевидно, что если вам не нравится наименование, вы можете изменить его на более ненавязчивое, но если вы действительно хотите выполнить сопоставление URL, вам, возможно, не следует конвертировать все неявно.