rune in Go



In this tutorial, we will learn about the rune data type in Go. We will cover the basics of defining and using rune values, including how to perform operations on runes and use them to handle Unicode characters.


Understanding the Rune Data Type in Go

The rune data type in Go is an alias for int32 and is used to represent Unicode code points. Runes are essential for working with characters from various languages and symbol sets.


Defining a Rune Variable

Rune variables in Go can be defined using the var keyword or by type inference.

var r rune = 'a'
s := rune('世')

Using Runes in Strings

Runes can be used in strings to represent and manipulate individual characters.

str := "Hello, 世界"
for _, r := range str {
    fmt.Printf("%c ", r)
}

Performing Operations on Runes

We can perform various operations on runes, such as converting them to integers or performing arithmetic operations.

r1 := 'a'
r2 := r1 + 1
fmt.Printf("%c", r2)


Example 1: Defining and using Rune Variables

We can define and use rune variables in Go to represent Unicode code points.

For example,

  1. Define a rune variable named r and assign it a character value.
  2. Define another rune variable named s using type inference and assign it a Unicode character.
  3. Print the values of both rune variables to the console.

Go Program

package main
import "fmt"
func main() {
    var r rune = 'a'
    s := rune('世')
    fmt.Printf("%c %U\n", r, r)
    fmt.Printf("%c %U\n", s, s)
}

Output

a U+0061
世 U+4E16


Example 2: Using Runes in Strings

We can use runes in strings to represent and manipulate individual characters.

For example,

  1. Define a string containing a mix of ASCII and Unicode characters.
  2. Use a for loop with a range clause to iterate over the string, treating each character as a rune.
  3. Print each rune character to the console.

Go Program

package main
import "fmt"
func main() {
    str := "Hello, 世界"
    for _, r := range str {
        fmt.Printf("%c ", r)
    }
}

Output

H e l l o ,   世 界 


Example 3: Performing Operations on Runes

We can perform various operations on runes, such as converting them to integers or performing arithmetic operations.

For example,

  1. Define a rune variable named r1 and assign it a character value.
  2. Define another rune variable named r2 by adding an integer to r1.
  3. Print the resulting character of r2 to the console.

Go Program

package main
import "fmt"
func main() {
    r1 := 'a'
    r2 := r1 + 1
    fmt.Printf("%c\n", r2)
}

Output

b


Example 4: Converting Runes to Integers

We can convert runes to their integer (Unicode code point) representations and print them.

For example,

  1. Define a rune variable named r and assign it a character value.
  2. Convert the rune to its integer representation.
  3. Print the integer value to the console.

Go Program

package main
import "fmt"
func main() {
    r := '世'
    fmt.Println(int32(r))
}

Output

19990