2016-01-21 52 views
0

我想修改雙鏈表中的元素值,但我不知道如何獲取它的指針,因爲元素的value是一個由go-lang自身定義的無界面。 據我所知道的是,我必須做一個類型斷言之前獲得更多元素的值:如何獲取雙向鏈表中元素值的指針(go-lang)

val, ok := ele.Value.(TYPE) 
if ok { 
    // do something... 
} 

,但如果我只是修改val這將是無用的。 那麼有什麼提示?

謝謝。

+0

如果您需要一個指針,然後將一個指針存儲在列表中。 – JimB

回答

1

有兩個非常簡單的選項。他們都將涉及類型的認定,因爲你使用interface{}

你可以將它保存爲一個指針和類型斷言:

var q interface{} 
var i int 
q = &i 
*(q.(*int)) = 5 

你可以簡單地將其重新分配:

var q interface{} 
q = 5 
b := q.(int) 
q = 2*b 

我個人認爲重新分配它是最有意義的。如果你正在做一個函數,你可能需要返回新的值。我相信還有其他方法可以改變它,但我認爲簡單是最好的。

當然在實際工作中一些檢查會很好。

+0

周圍沒有其他辦法。您可以存儲指針或值。 – JimB