Строковое форматирование имеет точность в Go? - PullRequest
0 голосов
/ 14 марта 2020

Я сталкивался с этой строкой в ​​книге «Язык программирования Go» на стр. 112. fmt.Printf("#%-5d %9.9s %.55s\n", item.Number, item.User.Login, item.Title) Что означают% 9.9s и% .55s?

1 Ответ

1 голос
/ 14 марта 2020

С go do c fmt :

Ширина указывается необязательным десятичным числом, непосредственно предшествующим глаголу. Если отсутствует, ширина - это то, что необходимо для представления значения. .... Однако для строк, байтовых срезов и байтовых массивов точность ограничивает длину форматируемого ввода (но не размер вывода), укорачивая при необходимости.

Таким образом, %.9.9s означает минимальную ширину 9 рун с усеченным входом в 9 и, следовательно, ровно длину 9. Аналогичный %.55s означает отсутствие минимальной ширины, но усеченный ввод в 55, что означает, что выход составляет не более 55 рун.

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