Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базове Приведення Типів | Типи Даних
Quizzes & Challenges
Quizzes
Challenges
/
Вступ до Golang

bookБазове Приведення Типів

Приведення типів — це процес перетворення даних з одного типу даних в інший. Однак важливо зазначити, що не завжди можливо перетворити дані з одного типу в інший. Наприклад, ми можемо перетворити float у int і навпаки. Проте, перетворення string у int не має сенсу, тому це неможливо.

Існує два типи перетворення типів або приведення типів. Один з них — це неявне приведення типів. Неявне приведення типів відбувається тоді, коли Go автоматично перетворює один тип в інший, якщо це безпечно та однозначно. Наприклад, коли ми присвоюємо цілочисельне значення змінній типу float, воно автоматично розглядається як float, оскільки під час перетворення дані не втрачаються (10 те саме, що й 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

Інший тип приведення типів — це явне приведення типів (Explicit Type Casting), яке відбувається, коли програміст явно перетворює дані або вирази з одного типу в інший. Синтаксис для явного приведення типів: desiredType(expression), наприклад:

index.go

index.go

copy
12345678
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }

У наведеній вище програмі ми перетворюємо значення типу float32 у int за допомогою явного приведення типів. У результаті десяткова частина початкового числа відкидається, і лише ціле значення 7 зберігається у number2. Важливо зазначити, що в цьому випадку частина даних втрачається, а саме десяткова частина числа (0.9). Однак це рішення було прийнято свідомо.

Аналогічно, ми можемо перетворити rune у string. У розділі Runes ми розглядали програму, яка виводила значення Rune у вигляді числа. Проте ми можемо відобразити символ, що відповідає Rune, перетворивши його у рядок:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }

Однак ми не можемо перетворити string на rune:

index.go

index.go

copy
12
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune

Важливо зазначити, що ми також не можемо перетворити рядок, який містить один символ, у руну:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Який із наведених варіантів є правильною синтаксичною формою приведення типів у Go?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain why we can't convert a string to a rune in Go?

Are there any workarounds for converting a string to a rune?

What happens if I try to convert a string to a rune in my code?

Awesome!

Completion rate improved to 1.96

bookБазове Приведення Типів

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

Приведення типів — це процес перетворення даних з одного типу даних в інший. Однак важливо зазначити, що не завжди можливо перетворити дані з одного типу в інший. Наприклад, ми можемо перетворити float у int і навпаки. Проте, перетворення string у int не має сенсу, тому це неможливо.

Існує два типи перетворення типів або приведення типів. Один з них — це неявне приведення типів. Неявне приведення типів відбувається тоді, коли Go автоматично перетворює один тип в інший, якщо це безпечно та однозначно. Наприклад, коли ми присвоюємо цілочисельне значення змінній типу float, воно автоматично розглядається як float, оскільки під час перетворення дані не втрачаються (10 те саме, що й 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

Інший тип приведення типів — це явне приведення типів (Explicit Type Casting), яке відбувається, коли програміст явно перетворює дані або вирази з одного типу в інший. Синтаксис для явного приведення типів: desiredType(expression), наприклад:

index.go

index.go

copy
12345678
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }

У наведеній вище програмі ми перетворюємо значення типу float32 у int за допомогою явного приведення типів. У результаті десяткова частина початкового числа відкидається, і лише ціле значення 7 зберігається у number2. Важливо зазначити, що в цьому випадку частина даних втрачається, а саме десяткова частина числа (0.9). Однак це рішення було прийнято свідомо.

Аналогічно, ми можемо перетворити rune у string. У розділі Runes ми розглядали програму, яка виводила значення Rune у вигляді числа. Проте ми можемо відобразити символ, що відповідає Rune, перетворивши його у рядок:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }

Однак ми не можемо перетворити string на rune:

index.go

index.go

copy
12
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune

Важливо зазначити, що ми також не можемо перетворити рядок, який містить один символ, у руну:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Який із наведених варіантів є правильною синтаксичною формою приведення типів у Go?

Select the correct answer

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

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

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

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