golang將interface{}轉換為struct

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

項目中需要用到golang的隊列,container/list,需要放入的元素是struct,但是因為golang中list的設計,從list中取出時的類型為interface{},所以需要想辦法把interface{}轉換為struct。

這裡需要用到interface assertion,具體操作見下面代碼:

 1 package main 2  3 import ( 4     "container/list" 5     "fmt" 6     "strconv" 7 ) 8  9 type People struct {10     Name string11     Age  int12 }13 14 func main() {15     // Create a new list and put some numbers in it.16     l := list.New()17     l.PushBack(People{"zjw", 1})18     19     // Iterate through list and print its contents.20     e := l.Front()21     p, ok := (e.Value).(People)22     if ok {23         fmt.Println("Name:" + p.Name)24         fmt.Println("Age:" + strconv.Itoa(p.Age))25     } else {26         fmt.Println("e is not an People")27     }28 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.