-1

i have the following code:

I know about runes in go, i read about them a lot in the last hours i have tried to solve this...

package main

import (
    "fmt"
    "strconv"
)

func main() {
    e := "\x002"
    fmt.Println(e)
    new := string(e)
    i, err := strconv.Atoi(new)
    if err != nil { fmt.Println(err) }
    fmt.Println(i)
}

result is:

2

strconv.ParseInt: parsing "\x002": invalid syntax

0

why can't i convert the string to an integer?

Any help appreciated!

jk2
  • 79
  • 7

2 Answers2

2

I'm not 100% sure of your goal but it looks like you want to extract the int value of the rune you get from a string containing a given character.

It looks like you want

e := "\x02"
runes := []rune(e)
i := runes[0]
fmt.Println(i) // 2
Denys Séguret
  • 372,613
  • 87
  • 782
  • 758
0

\xXXXX tries to parse it as a unicode rune, you need to skip the \ check this:

Either use :

e := "\\x002"
#or use a raw string :
e := `\x002`

edit :

Why do you think \x002 is a valid integer? do you mean 0x002?

OneOfOne
  • 95,033
  • 20
  • 184
  • 185