9

Go でルーン タイプを見つけました。簡単な質問ですが、説明する価値があります。

int32 のエイリアスであり、数値と文字の値を区別することが目的であることがわかりました。

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

しかし、「ルーン」という用語と混同していますが、実際には何を表していますか? 例: uint == unsigned int

4

2 に答える 2

10

しかし、「ルーン」という用語と混同していますが、実際には何を表していますか? 例: uint == unsigned int

ルーンは文字の略です。(「ルーン文字」は、ラテン文字が採用される前にさまざまなゲルマン語を書くために使用された、ルーン文字として知られる一連の関連する文字の文字です。[ウィキペディア])。

変数runeに Go の型がある場合、Unicode コード ポイントを保持するためのものであることがわかります。(runeは よりも短く明確ですcodepoint)。しかし、これは技術的には int32 です。つまり、メモリ内での表現は int32 です。

于 2013-07-25T11:09:10.210 に答える
5

一般的な意味では、Unicode の「ルーン」は単なる数字であり、ASCII と Unicode の両方で '@' のコードである 64(0x40) とまったく同じです。

  • 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)

}

遊び場


出力:

64 64 64 64

これが示しようとしているのは、[小さな] 整数 (およびそのようなリテラル) は基本的に型がない、つまり untyped であるということです

関連:ルーン文字.

于 2013-07-25T10:57:26.110 に答える