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

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

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