第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在Golang中初始化一個新類(Convert Java to Golang)

在Golang中初始化一個新類(Convert Java to Golang)

Go
元芳怎么了 2023-06-12 17:02:50
我正在嘗試將此 java 轉(zhuǎn)換為 golang,現(xiàn)在我遇到了這個錯誤。我不知道為什么會出現(xiàn)這個錯誤。這是java代碼:ArrayList<Cell> path; // path does not repeat first cellString name;static int count = 0;public Path() {  this.path = new ArrayList<>();  this.name = "P" + (++this.count);}public Path(Path op) {  this.path = new ArrayList<>();  this.name = op.name;  path.addAll((op.path));}這是我寫的type Path struct {    name  string    count int    path  []Cell}func NewPath() (p *Path) {    p = new(Path)    p.path = []Cell{}    p.count = 0    p.name = "P" + strconv.Itoa(1+p.count)    return}func NewPath(op Path) (p *Path) {    p = new(Path)    p.path = []Cell{}    p.count = 0    p.name = op.name    p.path = append(p.path, op.path)    return}go 系統(tǒng)說我在重新聲明 NewPath 方面是錯誤的,錯誤是:prog.go:21:6: NewPath redeclared in this block我該如何調(diào)試它?
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經(jīng)驗 獲得超6個贊

Golang 不支持重載方法名。

您只需調(diào)用(其中一個)不同的方法。


查看完整回答
反對 回復(fù) 2023-06-12
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

這段代碼中有幾個問題,但第一個,也是你指出的那個,是函數(shù)NewPath在這里定義了兩次,Go 會因此拋出錯誤。Go 不支持方法重載,因此解決此問題的最簡單方法是將第二個函數(shù)重命名為其他名稱。

您將遇到的下一個錯誤是,它發(fā)生在第二個函數(shù)的cannot use op.path (type []Cell) as type Cell in append行中。發(fā)生這種情況是因為您試圖將(type )放入(type ),因此由于不是類型,因此無法附加到. 請注意,這與連接不同,相反,它采用從第二個開始的所有參數(shù)并將它們放在第一個參數(shù)中。要解決此問題,您可以使用運算符解壓。這將使 的每個參數(shù)成為一個單獨的參數(shù),并且每個元素都將被放置在 中。p.path = append(p.path, op.path)NewPathop.path[]Cellp.path[]Cellop.pathCellp.pathappendop.pathappend...op.pathappendp.path

這是您的代碼的重構(gòu)版本:

func NewPath() (p *Path) { // no changes

    p = new(Path)

    p.path = []Cell{}

    p.count = 0

    p.name = "P" + strconv.Itoa(1+p.count)

    return

}


func NewPathFromOriginal(op Path) (p *Path) { // renamed

    p = new(Path)

    p.path = []Cell{}

    p.count = 0

    p.name = op.name

    p.path = append(p.path, op.path...) // note the '...'

    return

}


查看完整回答
反對 回復(fù) 2023-06-12
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號