Cast/convert int to rune in Go

casting, go, rune, type-conversion

Solution

You just want `rune(i)`. Casting is done via `type(x)`.

Type assertions are something different. You use a type assertion when you need to go from a less specific type (like `interface{}`) to a more specific one. Additionally, a cast is checked at compile time, where type assertions happen at runtime.

Here's how you use a type assertion:

var (
    x interface{}
    y int
    z string
)
x = 3

// x is now essentially boxed. Its type is interface{}, but it contains an int.
// This is somewhat analogous to the Object type in other languages
// (though not exactly).

y = x.(int)    // succeeds
z = x.(string) // compiles, but fails at runtime 

Problem

Assuming I have an int64 variable (or other integer size) representing a valid unicode code-point, and I want to convert it into a rune in Go, what do I do? In C I would have used a type cast something like: ``` c = (char) i; // 7 bit ascii only ``` But in Go, a type assertion won't work: ``` c, err = rune.( i) ``` Suggestions?

Original source

Related problems