如何 return 一个空白符文
How to return a blank rune
我正在查看 string.Map
函数,它必须采用 return 符文的映射函数。我想通过调用来消除解析为 false 的符文:unicode.IsPrint()
func Map(mapping func(rune) rune, s string) string
我的函数看起来像这样:
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)
}
它应该像这样清理 "helloworld ' \x10"
到 "helloworld ' "
但是rune('')
无效。我怎样才能 return 一个空白或空符文?
据我了解,符文实际上是一个映射到 unicode 字符的整数值,所以如果条件检查失败,这段代码实际上 returns [=11=]
字符:
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
fmt.Println(CleanUp("helloworld ' \x10"))
}
func CleanUp(s string) string {
clean := func(r rune) rune {
if unicode.IsPrint(r) || r == rune('\n') {
return r
}
return rune(0)
}
return strings.Map(clean, s)
}
产出
helloworld '
如果你想消除符文,"blank rune"不是办法。那不会消除任何东西。
假设您说的是 strings.Map
,文档说
If mapping returns a negative value, the character is dropped from the string with no replacement.
让你的映射器 return 一个负值来表示应该丢弃一个符文。
这是一个使用负 return 值的示例:
package main
import (
"strings"
"unicode"
)
func clean(r rune) rune {
if r == '\n' || unicode.IsPrint(r) {
return r
}
return -1
}
func main() {
s := strings.Map(clean, "helloworld ' \x10")
println(s == "helloworld ' ")
}
我正在查看 string.Map
函数,它必须采用 return 符文的映射函数。我想通过调用来消除解析为 false 的符文:unicode.IsPrint()
func Map(mapping func(rune) rune, s string) string
我的函数看起来像这样:
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)
}
它应该像这样清理 "helloworld ' \x10"
到 "helloworld ' "
但是rune('')
无效。我怎样才能 return 一个空白或空符文?
据我了解,符文实际上是一个映射到 unicode 字符的整数值,所以如果条件检查失败,这段代码实际上 returns [=11=]
字符:
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
fmt.Println(CleanUp("helloworld ' \x10"))
}
func CleanUp(s string) string {
clean := func(r rune) rune {
if unicode.IsPrint(r) || r == rune('\n') {
return r
}
return rune(0)
}
return strings.Map(clean, s)
}
产出
helloworld '
如果你想消除符文,"blank rune"不是办法。那不会消除任何东西。
假设您说的是 strings.Map
,文档说
If mapping returns a negative value, the character is dropped from the string with no replacement.
让你的映射器 return 一个负值来表示应该丢弃一个符文。
这是一个使用负 return 值的示例:
package main
import (
"strings"
"unicode"
)
func clean(r rune) rune {
if r == '\n' || unicode.IsPrint(r) {
return r
}
return -1
}
func main() {
s := strings.Map(clean, "helloworld ' \x10")
println(s == "helloworld ' ")
}