[英]How to call a function inside another function in Go language?
我收到一條錯誤消息:“未定義的有效”。 如何在一個函數中調用另一個函數?
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})
}
您可以像這樣pos.isvalid()
調用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
}
函數Possmov(pos Position){...}
第一行,即var isval isvalid
實際上是在嘗試聲明類型為isvalid
的變量(未定義,如錯誤所述)
而是在Position
類型上聲明您的isvalid()
方法。
試試: var isvalid = pos.isvalid()
放在適當的位置
您定義的var isval isvalid
,而isvalid
在Go中不是已知類型,而是:
func Possmov(pos Position) {
var isval bool // default is false
if isval == true {
fmt.Println("Something")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.