Предположим, имеется функция substrAfterLast, которая возвращает подстроку, начинающуюся с последнего встреченного delimiter'а, переданного в данную функцию.
Здравствуйте, b0r3d0m, Вы писали:
B>Пофлеймим?
B>Предположим, имеется функция substrAfterLast, которая возвращает подстроку, начинающуюся с последнего встреченного delimiter'а, переданного в данную функцию.
B>Реализация на JS:
B>
B>... B>Как вы считаете, что должна возвращать такая функция в том случае, если в this не было найдено указанного пользователем символа? B>...
B>Пустую строку?
Как отличить от ситуации если разделитель в конце строки?
B>Всю исходную строку целиком?
Хитрый ленивец. Переписывай реализацию. Решил сэкономить на проверке на -1 и вернуть substr(-1 + 1)?
Не слишком ли тяжелая будет проверка на то что разделитель не найден? Будешь проверять равенство строк?
Или по сценарию такая ситуация очень редкая и ты согласен проверять равенство строк при исключительной ситуации.
Можно вернуть null, как признак отсутсвия разделителя.
Здравствуйте, b0r3d0m, Вы писали:
b> Пустую строку? Всю исходную строку целиком?
Я бы вообще не писал такую универсальную функцию — применять всё равно универсально негде. Нужна функция получения базового имени файла? Ну так и назови эту функцию так basename. Тогда и однозначностей нет что делать с частными случаями.
Здравствуйте, ·, Вы писали: ·>Я бы вообще не писал такую универсальную функцию — применять всё равно универсально негде. Нужна функция получения базового имени файла? Ну так и назови эту функцию так basename. Тогда и однозначностей нет что делать с частными случаями.
Угу. Потому что GetFileExt("C:\Temp\test") == "", a GetFileLocalPart("test.txt") == "test.txt".
В отличие от substrAfterLast("C:\Temp\test.txt", "\") == "test.txt", и substrAfterLast("C:\Temp\test.txt", ".") == "txt".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, ·, Вы писали:
·>Здравствуйте, b0r3d0m, Вы писали:
b>> Пустую строку? Всю исходную строку целиком? ·>Я бы вообще не писал такую универсальную функцию — применять всё равно универсально негде. Нужна функция получения базового имени файла? Ну так и назови эту функцию так basename. Тогда и однозначностей нет что делать с частными случаями.
Здравствуйте, fin_81, Вы писали:
b>>> Пустую строку? Всю исходную строку целиком? _>·>Я бы вообще не писал такую универсальную функцию — применять всё равно универсально негде. Нужна функция получения базового имени файла? Ну так и назови эту функцию так basename. Тогда и однозначностей нет что делать с частными случаями. _>И засунуть его в String.prototype.basename
А что? Рядом с fontcolor и italics будет неплохо смотреться.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай