Я планирую создать некоторое расширение метода для строкового типа.
Мне нужно записать все мои методы расширения в отдельный пакет.
Вот моя иерархия.
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, но они точно не говорят о типе строки и о том, что метод находится в другом файле пакета.