我收到错误消息" undefined isvalid"。如何在函数中调用另一个函数?
package main
import "fmt"
type Position struct {
row int
col int
}
func (posstn Position) isvalid() bool {
if posstn.row > 8 || posstn.row < 0 || posstn.col > 8 || posstn.col < 0 {
return false
}
return true
}
func Possmov(pos Position) {
var isval isvalid
if isval == true {
fmt.Println("Something")
}
}
func main() {
Possmov(Position{1, 7})
}
答案 0 :(得分:3)
您可以像isvalid()
一样致电pos.isvalid()
,请参阅此工作示例代码:
package main
import "fmt"
type Position struct {
row int
col int
}
func (posstn Position) isvalid() bool {
if posstn.row > 8 || posstn.row < 0 || posstn.col > 8 || posstn.col < 0 {
return false
}
return true
}
func Possmov(pos Position) {
isval := pos.isvalid()
if isval == true {
fmt.Println("Something")
}
}
func main() {
Possmov(Position{1, 7}) //Something
}
答案 1 :(得分:1)
函数Possmov(pos Position){...}
中的第一行,即var isval isvalid
实际上是在尝试声明isvalid
类型的变量(错误描述未定义)
而是在isvalid()
类型上声明了Position
方法。
尝试:var isvalid = pos.isvalid()
在其中
答案 2 :(得分:0)
您定义的var isval isvalid
,而isvalid
不是Go中的已知类型,而是:
func Possmov(pos Position) {
var isval bool // default is false
if isval == true {
fmt.Println("Something")
}
}