我打算为字符串类型创建一些方法扩展。
我需要将所有的扩展方法写入一个单独的包中。
以下是我的层次结构。
当我运行它时,会出现错误。
错误。
我需要将所有的扩展方法写入一个单独的包中。
以下是我的层次结构。
root
| main.go
| validation
| validate.go
我希望 main.go
中有 "abcd".Required()
方法。
main.go
package main
import (
"fmt"
"./validation"
)
func main() {
fmt.Println( "abcd".Required() )
}
validate.go
package validation
func (s string) Required() bool {
if s != "" {
return true
}
return false
}
当我运行它时,会出现错误。
错误。
cannot define new methods on non-local type string
我在StackOverflow的其他问题中找到了一些答案,但它们并没有详细讨论字符串类型和将方法放在不同包文件中的情况。
string
类型上定义方法。不过你可以创建一个新类型(例如type mystring string
),并在新类型上添加方法。 - icza