我想修改雙鏈表中的元素值,但我不知道如何獲取它的指針,因爲元素的value是一個由go-lang自身定義的無界面。 據我所知道的是,我必須做一個類型斷言之前獲得更多元素的值:如何獲取雙向鏈表中元素值的指針(go-lang)
val, ok := ele.Value.(TYPE)
if ok {
// do something...
}
,但如果我只是修改val
這將是無用的。 那麼有什麼提示?
謝謝。
我想修改雙鏈表中的元素值,但我不知道如何獲取它的指針,因爲元素的value是一個由go-lang自身定義的無界面。 據我所知道的是,我必須做一個類型斷言之前獲得更多元素的值:如何獲取雙向鏈表中元素值的指針(go-lang)
val, ok := ele.Value.(TYPE)
if ok {
// do something...
}
,但如果我只是修改val
這將是無用的。 那麼有什麼提示?
謝謝。
有兩個非常簡單的選項。他們都將涉及類型的認定,因爲你使用interface{}
你可以將它保存爲一個指針和類型斷言:
var q interface{}
var i int
q = &i
*(q.(*int)) = 5
你可以簡單地將其重新分配:
var q interface{}
q = 5
b := q.(int)
q = 2*b
我個人認爲重新分配它是最有意義的。如果你正在做一個函數,你可能需要返回新的值。我相信還有其他方法可以改變它,但我認爲簡單是最好的。
當然在實際工作中一些檢查會很好。
周圍沒有其他辦法。您可以存儲指針或值。 – JimB
如果您需要一個指針,然後將一個指針存儲在列表中。 – JimB