Golang strings.Map()函数及示例
在Golang中,strings.Map()函数是一个很有用的字符串函数,可以将一个字符串的每个字符都转换成另一个字符,并返回转换后的新字符串。
函数原型
strings.Map()函数的原型如下:
func Map(mapping func(rune) rune, s string) string
这个函数接收两个参数,第一个参数是一个类型为func(rune) rune的函数,接收一个rune类型的参数并返回一个rune类型的值。这个函数被称为“映射函数”,它将用于将传入的字符串中的每个字符转换成另一个字符。第二个参数是一个字符串,它表示要进行转换的目标字符串。
示例代码
下面是一个示例代码,用于将一个字符串中的所有数字字符替换成星号*:
package main
import (
"fmt"
"strings"
)
func main() {
s := "abc123def456"
newS := strings.Map(func(r rune) rune {
if r >= '0' && r <= '9' {
return '*'
}
return r
}, s)
fmt.Println(newS) // Output: abc***def***
}
在这个示例代码中,我们定义了一个包含映射函数的匿名函数,这个函数用于将数字字符转换成星号*。然后,我们调用strings.Map()函数并传入这个函数和需要被转换的字符串s,得到一个新的字符串newS。最后,我们打印出这个新字符串的值。
值得注意的是,strings.Map()函数是一个纯函数,它不会改变传入的原始字符串s,而是返回一个新的转换后的字符串。
下面是另一个示例代码,用于将一个字符串中的所有小写字母转换成大写字母:
package main
import (
"fmt"
"strings"
)
func main() {
s := "hello world"
newS := strings.Map(func(r rune) rune {
if r >= 'a' && r <= 'z' {
return r - 'a' + 'A'
}
return r
}, s)
fmt.Println(newS) // Output: HELLO WORLD
}
在这个示例代码中,我们使用了同样的方法来定义映射函数,这次将小写字母转换成大写字母。我们调用strings.Map()函数并传入这个函数和需要被转换的字符串s,同样得到一个新的字符串newS,最后打印出它的值。
结论
strings.Map()函数是一个非常有用的字符串函数,可以用于将一个字符串中的每个字符都转换成另一个字符。我们可以根据需要定义不同的映射函数,并传入strings.Map()函数进行转换。这个函数是一个纯函数,不会改变传入的原始字符串,而是返回一个新的转换后的字符串。
极客笔记