2013-07-25 5 views
3

Я нашел тип руны в Go и имеет простой вопрос, но стоит разведать.Перейти к описанию руны типа

Я знаю, что это псевдоним для int32, и цель состоит в том, чтобы различать числовые и символьные значения.

http://golang.org/pkg/builtin/#rune

Но я путать с термином «руна», что на самом деле это означает? Например, uint == unsigned int

ответ

5

Но я смущен термином «руна», на самом деле это означает? например uint == unsigned int

Руна означает письмо. («Руны» - это буквы в наборе связанных алфавитов, известных как рунические алфавиты, которые использовались для написания разных германских языков до принятия латинского алфавита. [Википедия]).

Если переменная имеет тип rune, вы знаете, что она предназначена для хранения кодовой точки юникода. (rune короче и яснее, чем codepoint). Но это технический int32, т. Е. Его представление в памяти - это int32.

+0

«кодовая точка», что именно это означает? – nish1013

+0

нашел его http://en.wikipedia.org/wiki/Code_point :) – nish1013

+0

http://en.wikipedia.org/wiki/Runes - идеально подходит для поклонников Lord of the Rings :-P И старое английское Þ письмо с шипами , который все еще используется в Исландии, имеет рунический аналог. –

4

В общем смысле Unicode «rune» - это просто число, точно такое же, как 64 (0x40), это номер, который является кодом для «@» как в ASCII, так и в Unicode.

  • Действительно ли 64-й номер? Да, конечно. вы можете присвоить литерал 64 переменной float.
  • Есть 64 интегральное число? Да. Вы можете назначить литерал 64 любой целостной переменной.
  • Есть ли 64-значный номер? Да. Вы можете передать литерал 64 любой переменной без знака.
  • Есть 64 беззнаковый номер? Да. Вы можете присвоить литерал 64 любой подписанной переменной.

package main 

import "fmt" 

func main() { 
    var f float64 
    f = 64 
    var b int8 
    b = 64 
    var u uint16 
    u = 64 
    var i int 
    i = 64 
    fmt.Println(f, b, u, i) 

}

Playground


Выход:

64 64 64 64 

То, что это попытка показать, что [мелкие] целые числа (а также такие литералы) являются в основном безликими, то есть untyped.

Относно: Rune Literals.

Смежные вопросы