gpt4 book ai didi

go - 如何在 Golang 中为字符串类型创建方法

转载 作者:IT王子 更新时间:2023-10-29 01:22:55 25 4
gpt4 key购买 nike

我打算为字符串类型创建一些方法扩展。

我需要将我所有的扩展方法写到一个单独的包中。

这是我的层次结构。

root
| main.go
| validation
| validate.go

main.go 我想要,"abcd".Required()

ma​​in.go

package main

import (
"fmt"
"./validation"
)

func main() {
fmt.Println( "abcd".Required() )
}

验证.go

package validation

func (s string) Required() bool {

if s != "" {
return true
}

return false
}

当我运行它时,会得到一个错误。

错误

cannot define new methods on non-local type string

我在 StackOverflow 上的其他问题中找到了一些答案,但他们并没有完全谈论字符串类型以及在不同的包文件中使用该方法。

最佳答案

在你的 validate.go 中创建一个新类型 String:

package validation

type String string

func (s String) Required() bool {

return s != ""
}

然后在您的 main 中使用 validation.String 对象:

package main

import (
"fmt"

"./validation"
)

func main() {
fmt.Println(validation.String("abcd").Required())
}

一个可执行示例,所有内容都在此处的同一个文件中:

https://play.golang.org/p/z_LcTZ6Qvfn

关于go - 如何在 Golang 中为字符串类型创建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347281/

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