Kotlin и используйте padEnd () дважды - PullRequest
0 голосов
/ 03 июля 2018

Я дважды пытался использовать padEnd() на String. В первый раз функция расширения padEnd() работает как положено, но во второй раз она не добавляет символы, которые я пробовал.

Мой код:

var s = "Hi -> "
s = s.padEnd(10, 'O')
s = s.padEnd(5, ' ')
println(s)

Мой вывод:

Hi -> OOOO

Я использую kotlin версии 1.2.50. Я также попытался онлайн-компилятор Jetbrains , чтобы предотвратить появление ошибки только на моем компьютере, с тем же результатом. Я также попытался использовать другую версию kotlin (1.0.7 и 1.1.60) с той же самой функцией / ошибкой.

Я также попытался использовать padStart() с тем же поведением, просто добавив его перед String.

Смешивание двух функций расширения также не работало должным образом: использование padStart() и сразу после этого padEnd()

Это ожидаемая функция? Если так, то почему это ожидается? Или это просто ошибка?

1 Ответ

0 голосов
/ 03 июля 2018

padEnd не добавляет данный символ к вашей строке указанное количество раз - первый параметр - это целевая длина, до которой он будет дополнен. Из документов:

Возвращает последовательность символов длиной не менее length, состоящую из этой последовательности символов, к которой добавлено padChar столько раз, сколько необходимо для достижения этой длины.

Итак, во втором вызове вы пытаетесь дополнить "Hi -> 0000" до тех пор, пока он не станет длиной не менее 5 символов - что уже есть, поэтому в его конце не добавляются пробелы.

...