Go 导出的方法在同一个包中不可用
我有一个小的go lang项目,它在main.go文件中有几个处理程序,它们引用session.go文件中与会话相关的方法。两者都在文件顶部有Go 导出的方法在同一个包中不可用,go,Go,我有一个小的go lang项目,它在main.go文件中有几个处理程序,它们引用session.go文件中与会话相关的方法。两者都在文件顶部有package main。session.go文件中的函数都以大写字母开头(即它们是public/exported方法)。然而,当我运行main.go文件时,它指出位于session.go中的方法和从main.go调用的方法是未定义的。为什么会这样,如何修复它 我正在运行项目,就像go run main.go 梅因,加油 func logout(w htt
package main
。session.go文件中的函数都以大写字母开头(即它们是public/exported方法)。然而,当我运行main.go
文件时,它指出位于session.go
中的方法和从main.go
调用的方法是未定义的。为什么会这样,如何修复它
我正在运行项目,就像go run main.go
梅因,加油
func logout(w http.ResponseWriter, r *http.Request) {
ClearSession(w, r)
....
}
session.go
func ClearSession(w http.ResponseWriter, r *http.Request) {
}
正如@ptd所说,该命令需要所有名为的文件
我更喜欢使用另一个软件包:
/ main.go
|_session/
|_session.go
|_validations.go
|_errors.go
因此,您可以组织代码并简化命名文件
e、 g:
文件:main.go
package main
import "session"
func main() {
var validator session.Validator
var session session.Session
...
if session.IsValid() == false {
// return session.InvalidSession
fmt.Printf("ERROR: %v", session.InvalidSession)
}
}
文件:errors.go
import "errors"
var (
InvalidSession = errors.New("[Your error message]"
)
然后您可以使用:
go run main.go
您必须运行go运行main.go session.go
。go-run
命令需要所有名为的文件。好的,谢谢,我实际上运行了go-build并使其工作。我想你的答案是解决方案,如果你不建立。如果你写答案,我会接受。