1. Преобразование целочисленного значения со знаком или без знака в строковый тип дает строку, содержащую представление целого числа в UTF-8. Значения за пределами диапазона допустимых кодовых точек Unicode преобразуются в "\uFFFD".
string('a') // "a"
string(-1) // "\ufffd" == "\xef\xbf\xbd"
string(0xf8) // "\u00f8" == "ø" == "\xc3\xb8"
type MyString string
MyString(0x65e5) // "\u65e5" == "日" == "\xe6\x97\xa5"
2. Преобразование среза байтов в строковый тип дает строку, последовательные байты которой являются элементами среза.
string([]byte{'h', 'e', 'l', 'l', '\xc3', '\xb8'}) // "hellø"
string([]byte{}) // ""
string([]byte(nil)) // ""
type MyBytes []byte
string(MyBytes{'h', 'e', 'l', 'l', '\xc3', '\xb8'}) // "hellø"
3. Преобразование среза рун в строковый тип дает строку, которая является объединением отдельных значений рун, преобразованных в строки.
string([]rune{0x767d, 0x9d6c, 0x7fd4}) // "\u767d\u9d6c\u7fd4" == "白鵬翔"
string([]rune{}) // ""
string([]rune(nil)) // ""
type MyRunes []rune
string(MyRunes{0x767d, 0x9d6c, 0x7fd4}) // "\u767d\u9d6c\u7fd4" == "白鵬翔"
4. Преобразование значения типа строки в тип среза байтов дает срез, последовательными элементами которого являются байты строки.
[]byte("hellø") // []byte{'h', 'e', 'l', 'l', '\xc3', '\xb8'}
[]byte("") // []byte{}
MyBytes("hellø") // []byte{'h', 'e', 'l', 'l', '\xc3', '\xb8'}
5. Преобразование значения типа строки в срез типа руны дает срез, содержащий отдельные кодовые точки Unicode строки.
[]rune(MyString("白鵬翔")) // []rune{0x767d, 0x9d6c, 0x7fd4}
[]rune("") // []rune{}
MyRunes("白鵬翔") // []rune{0x767d, 0x9d6c, 0x7fd4}
Читайте также:
- Спецификация Go: преобразования
- Спецификация Go: преобразования между числовыми типами
- Спецификация Go: логические, числовые, строковые типы
Комментариев нет:
Отправить комментарий