reflect反射

#內建包code

reflect是go自帶的內建包,能夠直接輸入「reflect」引入接口

#2條分支數據類型

reflect裏有2條重要分支方法

  1. 和類型有關的分支數據

    • 包裝爲實現reflect.Type接口的struct
    • 經過reflect.TypeOf()方法得到
  2. 和值有關的分支,包裝爲reflect.Valueco

    • 包裝爲reflect.Value
    • 經過reflect.ValueOf()方法得到

    s := 1 //一個單純的數字數字

    st := reflect.TypeOf(s) //獲取s屬於什麼類型,並將獲取到的結果封裝在reflect.Type裏 //st的數據類型是reflect.Type. println(st.String()) //調用String方法能夠看到類型名稱,這裏是intstruct

    sv := reflect.ValueOf(s) //獲取s屬於什麼類型,並將獲取到的結果封裝在reflect.Value裏 //st的數據類型是reflect.Value. println(sv.Int()) //調用Int方法能夠看到數值,這裏是1封裝

#reflect.Type分支

類型是reflect.Type時,通常有String方法,用於打印類型名稱

  1. String方法,用於打印類型名稱
  2. Size方法,用於得到某類型佔用字節數
相關文章
相關標籤/搜索