Интересно, что отличается между разделителем и терминатором в печати? - PullRequest
0 голосов
/ 30 июня 2019

Мне интересно об этой вещи для печати. Вы могли заметить, что эта концепция кода отличается от этой концепции кода.

print(1, 2, 3, 4, 5, separator: "...")
//1...2...3...4...5

и

for n in 1...5 {
    print(n, separator: " ", terminator: "...")
}
// 1...2...3...4...5...

Я думал, что разделитель должен быть пробелом для добавления текста каждого из элементов, но в качестве разделителей по умолчанию используются новые строки как известные \ n , которые вы могли бы видеть как символы новой строки, если вы также использовали быструю игровую площадку. Если вы поместите эти три периода в разделитель, вы не сможете отобразить это «...» в циклах, но печать может. Я немного запутался в этом коде. так дайте мне знать об этом коде. Могу я ошибаться в этих вещах. Я узнал о Свифте.

Ответы [ 2 ]

0 голосов
/ 30 июня 2019

separator - текст для печати между вейлами, заданными для печати.terminator - текст для печати после печати всех значений.так:

print(val1, val2, val3, ..., separator: "<SEP>", terminator: "<TERM>")

напечатает

val1<SEP>val2<SEP>val3<SEP>...<TERM>

, если для print задано только одно значение, то НЕ напечатает разделитель, потому что он имеетнечего отделять!(вы не отделяете одно значение от себя).но он напечатает указанный терминатор (или терминатор по умолчанию, если он не указан).

для этого

print(1, 2, 3, 4, 5, separator: "...")
//1...2...3...4...5

выведет значения 1, 2, 3, 4, 5разделенные символом «...» и оканчивающиеся терминатором по умолчанию, а

for n in 1...5 {
    print(n, separator: " ", terminator: "...")
}
// 1...2...3...4...5...

будет печатать каждое число от 1 до 5, с текстом ... после каждого числа и не будет печатать разделитель,потому что для печати дается только одно значение для печати. ​​

0 голосов
/ 30 июня 2019

Как описано для метода print(_:separator:terminator:):

разделитель : строка для печати между каждым элементом.

терминатор : строкапечатать после печати всех элементов.

Это за звонок на print.Таким образом, separator полезен только тогда, когда вы предоставляете более одного значения для print.

print(arg1, arg2, ..., argN, separator: someSeparator, terminator: someTerminator)

Это приводит к:

arg1 someSeparator arg2 someSeparator ... someSeparatorargN someTerminator

(но без пробелов, которые я добавил для ясности).

Когда вы печатаете только одно значение, например, в коде в вашем вопросе, separator isnне используется вообще, поэтому вы видите только терминатор в конце каждого напечатанного значения.

Код, такой как:

print(1, 2, 3, 4, 5, separator: " ", terminator: "...")

даст результаты, которые вы, похоже, ищете:

1 2 3 4 5 ...

...