亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將結構數組傳遞給我的結構函數

如何將結構數組傳遞給我的結構函數

Go
智慧大石 2022-01-10 10:40:58
因此,我將切片重命名為在函數中使用,其中一個連接到數組(如類方法)。type Points []Pointfunc (p Points) Isset(ip Point) bool {     for _, i := range p {         if i.Hash == ip.Hash {             return true         }     }     return false}但這沒關系,因為在另一個函數中,它試圖通過類型 Points 傳遞 slice,我遇到了一些麻煩......這是示例:func (p Points) Merge(ip Points) {    fmt.Println(p)}在第一個函數中 - 我可以將我的p變量作為數組訪問。在第二個 - p- 只是空數組。但是,如果我更改傳遞變量的類型 - 一切都會好起來的。我該怎么辦...我需要指定我的合并功能。這個解決方案看起來很棒,但不起作用。
查看完整描述

2 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

我不確定我是否理解,這是一個游戲示例,據我所知,這兩個功能都按預期工作。

https://play.golang.org/p/n5ch-Wqbil

也許您在從另一個函數調用一個函數時遇到了一些問題(比如從 Merge 調用 Isset?)在這種情況下,@Games 的答案可能仍然適用。

編輯此示例顯示我認為您可能正在嘗試做的事情。 https://play.golang.org/p/CNEt-poKdN,它似乎工作得很好(雖然有 N^2 次性能)


查看完整回答
反對 回復 2022-01-10
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

這是因為您需要說這Points是對Points. 您可以通過以下方式做到這一點:


func (p *Points) Isset(ip Point) bool {

     for _, i := range p {

         if i.Hash == ip.Hash {

             return true

         }

     }

     return false

}

注意我們如何設置*Points而不是Points. 這告訴 go 我們想要使用Points我們從中調用方法的結構的實例。


查看完整回答
反對 回復 2022-01-10
  • 2 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號