gpt4 book ai didi

regex - 戈朗 : functional programming in Go

转载 作者:IT王子 更新时间:2023-10-29 01:20:35 24 4
gpt4 key购买 nike

我尝试了一些我在 Javascript 中所做的事情。但它说 http://play.golang.org/p/qlWLI03Dnl

    package main

import "fmt"
import "regexp"
import "strings"

func swapit(str string) string {
var validID = regexp.MustCompile(`[a-z]|[A-Z]`)
return validID.ReplaceAllString(str, func(${0}, ${1}, ${2}) string {
return (${1}) ? strings.ToUpper(${0}) : strings.ToLower(${0})
})

}

func main() {
fmt.Println(swapit("hello wOrld."))
// HELLO WoRLD.

}

我也试过删除 ? : 语法但仍然不起作用。 http://play.golang.org/p/mD6_78zzo1

真的去不支持这个吗?我是否只是放弃并强制每个角色改变案例?

非常感谢

最佳答案

正如@James Henstridge 已经指出的那样,您的代码存在多个问题。这个答案不会关注错误,而是解决问题的不同方式。

如果你的目标是学习在 Go 中使用正则表达式,我的这个答案毫无用处。
如果您的目标是学习如何制作一个交换大小写的函数,那么我建议使用 unicode 包代替正则表达式的解决方案:

package main

import (
"bytes"
"fmt"
"unicode"
)

func SwapCase(str string) string {
b := new(bytes.Buffer)

for _, r := range str {
if unicode.IsUpper(r) {
b.WriteRune(unicode.ToLower(r))
} else {
b.WriteRune(unicode.ToUpper(r))
}
}

return b.String()
}

func main() {
fmt.Println(SwapCase("Hej värLDen."))
}

输出:

hEJ VÄRldEN.

Playground

此解决方案还将处理所有非 A-Z 字符,例如 ö-Ö 和 å-Å。

关于regex - 戈朗 : functional programming in Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com