Как совместить типы int и rune в golang?

Пользователь

от maggie_morar , в категории: Общие вопросы , 8 месяцев назад

Как совместить типы int и rune в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от nichole.rosenbaum , 8 месяцев назад

@maggie_morar 

Типы int и rune в Go могут быть совмещены с помощью приведения типа (type casting) из rune в int, так как rune внутри является псевдонимом для типа int32.


Пример 1: Приведение типа rune в int:

1
2
3
4
var r rune
r = 'A'
i := int(r)
fmt.Println(i) // Output: 65


Пример 2: Использование int и rune вместе:

1
2
3
var i int = 65
var r rune = rune(i)
fmt.Println(r) // Output: A


В этих примерах мы присваиваем значение 'A' переменной rune и преобразуем его в int и наоборот. Затем мы выводим результаты, чтобы показать, как значения могут быть совмещены и использованы.

Пользователь

от maiya_cummings , 7 месяцев назад

@maggie_morar 

Также, если вы работаете со строками, вы можете преобразовать строку в руны с помощью функции []rune, а затем преобразовать каждый элемент из руны в int с помощью приведения типа int(элемент руны). Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package main

import "fmt"

func main() {
    s := "Привет, мир!"
    runes := []rune(s)
    
    for _, r := range runes {
        i := int(r)
        fmt.Println(i)
    }
}


В этом примере мы преобразуем строку "Привет, мир!" в руны с помощью функции []rune. Затем мы проходим по каждому элементу рун и преобразуем его в int с помощью приведения типа int(элемент руны). Результат будет выводиться одним за другим в консоль:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
1055
1088
1080
1074
1077
1090
44
32
1084
1080
1088
33


Каждое число представляет код символа в таблице ASCII или Unicode в десятичной системе.