Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Форматування Рядків | Типи Даних
Вступ до Golang

bookФорматування Рядків

Тепер, коли ми ознайомилися з усіма базовими типами даних, можемо розглянути форматування рядків. У програмуванні форматування рядків означає включення значень змінних у рядки.

Примітка

Оператор import використовується для імпорту пакетів у застосунок Go. Пакет — це набір пов’язаних вихідних файлів Go, які разом надають певний функціонал або сервіси. Пакет fmt містить функції, що дозволяють форматувати рядки.

Однією з функцій пакету fmt, яку ми вже використовували, є функція Println. Функція Println виводить текст на екран, кожного разу починаючи з нового рядка. Однак існує функція Print, яка виводить текст без переходу на новий рядок:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

Загалом, ці функції можна використовувати для вставки значень змінних у рядкові дані за допомогою наступного методу:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Однак цей метод не є дуже ефективним, оскільки для вставки змінних у відповідні місця доводиться розділяти рядок на багато сегментів, що може стати громіздким у складніших випадках. Функція Printf вирішує цю проблему та спрощує процес виведення форматованих даних.

Функція Printf приймає рядок формату як перший аргумент, а далі — значення (або змінні), які потрібно вставити у рядок формату. Рядок формату містить заповнювачі (специфікатори формату), які визначають формат бажаного виводу.

Наведено приклад:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Як показано у прикладі, специфікатори формату — це символи, які виконують роль заповнювачів для певних типів даних у рядку. Для кожного типу даних існує окремий специфікатор формату. У таблиці нижче наведено перелік основних специфікаторів формату:

Форматний специфікаторТип даних
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Змінні підставляються у відповідні заповнювачі у форматному рядку. У виведенні наведеного вище прикладу перший %d замінюється на значення змінної n. Аналогічно, другий підставляється відповідною змінною, тобто in, а останній %d замінюється на значення out.

Можна також відформатувати рядок і зберегти його у змінній типу string за допомогою функції Sprintf, яка форматує рядок і повертає отриманий результат для зберігання або подальшого використання, замість негайного виведення на екран:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Ось більш складний приклад, який поєднує кілька концепцій, розглянутих раніше, в одній програмі. Це буде корисна вправа для перегляду наступної програми та її виводу з метою покращення навичок читання коду:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

У деяких випадках компілятор виконує неявне приведення типів для узгодження значень із специфікаторами формату, як показано в наступному прикладі:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

Руна 'char' виводиться як символ і як числове значення. Однак у деяких випадках компілятор може видати помилку. Наприклад, наступний код призведе до некоректного виводу, оскільки 'float' не може бути неявно перетворений у 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Яким буде вивід наведеної нижче програми?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about how to use different format specifiers?

What happens if I use the wrong format specifier for a variable?

Can you show more examples of string formatting in Go?

Awesome!

Completion rate improved to 1.96

bookФорматування Рядків

Свайпніть щоб показати меню

Тепер, коли ми ознайомилися з усіма базовими типами даних, можемо розглянути форматування рядків. У програмуванні форматування рядків означає включення значень змінних у рядки.

Примітка

Оператор import використовується для імпорту пакетів у застосунок Go. Пакет — це набір пов’язаних вихідних файлів Go, які разом надають певний функціонал або сервіси. Пакет fmt містить функції, що дозволяють форматувати рядки.

Однією з функцій пакету fmt, яку ми вже використовували, є функція Println. Функція Println виводить текст на екран, кожного разу починаючи з нового рядка. Однак існує функція Print, яка виводить текст без переходу на новий рядок:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

Загалом, ці функції можна використовувати для вставки значень змінних у рядкові дані за допомогою наступного методу:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Однак цей метод не є дуже ефективним, оскільки для вставки змінних у відповідні місця доводиться розділяти рядок на багато сегментів, що може стати громіздким у складніших випадках. Функція Printf вирішує цю проблему та спрощує процес виведення форматованих даних.

Функція Printf приймає рядок формату як перший аргумент, а далі — значення (або змінні), які потрібно вставити у рядок формату. Рядок формату містить заповнювачі (специфікатори формату), які визначають формат бажаного виводу.

Наведено приклад:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Як показано у прикладі, специфікатори формату — це символи, які виконують роль заповнювачів для певних типів даних у рядку. Для кожного типу даних існує окремий специфікатор формату. У таблиці нижче наведено перелік основних специфікаторів формату:

Форматний специфікаторТип даних
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Змінні підставляються у відповідні заповнювачі у форматному рядку. У виведенні наведеного вище прикладу перший %d замінюється на значення змінної n. Аналогічно, другий підставляється відповідною змінною, тобто in, а останній %d замінюється на значення out.

Можна також відформатувати рядок і зберегти його у змінній типу string за допомогою функції Sprintf, яка форматує рядок і повертає отриманий результат для зберігання або подальшого використання, замість негайного виведення на екран:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Ось більш складний приклад, який поєднує кілька концепцій, розглянутих раніше, в одній програмі. Це буде корисна вправа для перегляду наступної програми та її виводу з метою покращення навичок читання коду:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

У деяких випадках компілятор виконує неявне приведення типів для узгодження значень із специфікаторами формату, як показано в наступному прикладі:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

Руна 'char' виводиться як символ і як числове значення. Однак у деяких випадках компілятор може видати помилку. Наприклад, наступний код призведе до некоректного виводу, оскільки 'float' не може бути неявно перетворений у 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Яким буде вивід наведеної нижче програми?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7
some-alt