Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to return a blank rune

Tags:

go

rune

I'm looking at the string.Map function which must take a mapping function which returns a rune. I would like to eliminate runes that resolves false with a call to: unicode.IsPrint()

func Map(mapping func(rune) rune, s string) string

My function looks something like this:

func main() { 
func CleanUp(s string) string {

    clean := func(r rune) rune {
        if unicode.IsPrint(r) || r == rune('\n') {
            return r
        }
        return rune('')
    }

strings.Map(clean, s)
}

It should clean something like this "helloworld ' \x10" to "helloworld ' "

But rune('') is invalid. How can I return a blank or empty rune?

like image 483
user398520 Avatar asked Sep 04 '18 21:09

user398520


1 Answers

If you want to eliminate runes, a "blank rune" is not the way to go. That would not eliminate anything.

Assuming you're talking about strings.Map, the docs say

If mapping returns a negative value, the character is dropped from the string with no replacement.

Have your mapper return a negative value to indicate that a rune should be discarded.

like image 60
user2357112 supports Monica Avatar answered Nov 17 '22 16:11

user2357112 supports Monica