go 的反射

package main

import (
    "reflect"
    "fmt"
)
/**
todo 关键点  elem()
 */


func main(){
    //通过反射修改值

    num:= 133
    reflectModify(&num)  //地址 &  ptr =》 指针
    fmt.Println(num)



    //类似的理解
    num3:=123
    var num4 *int = &num3
    fmt.Println(*num4)
}

func reflectModify(b interface{}){

    rVal:=reflect.ValueOf(b)

    fmt.Println(rVal.Kind())
    fmt.Println(rVal.Type())


    //rVal是个ptr指针   要转成值类型   理解成  取值  类似于  *取值
    rVal.Elem().SetInt(155)
    //rVal.SetInt(155)   todo wrong






}

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站大部分内容收集于互联网,如果有侵权内容、不妥之处,请联系删除。敬请谅解!

  Previous post HTTPS 工作原理
Next post   go chan归并的核心代码

  关于博主【WANG-FEiHU】

Duplicate
-----------Complicate
--------------------------Appreciate
----------------------------------------[Fate]
-----------------------------------------------Elevate

三人行 有吾师

-------------花有重开日 梦无止境时-------------

  分类目录

  monitor(TD)

生命要得到丰盛的收获,必需阳光;同时,也需要“雨”的浇灌。

如真 如假 如可分身饰演自己 会将心中的温柔 献出给你唯有的知己

如痴 如醉 还盼你懂珍惜自己 有天即使分离我都想你 我 真的想你

红雨瓢泼泛起了回忆怎么潜

你的选择是做或不做,但不做就永远不会有机会。

爱是有多荒唐 ,恨也能醉人肠。

人生应该树立目标,否则你的精力会白白浪费。

种下一颗树最好的时间是十年前,其次是现在。

你我亦无他 唯手熟尔

只要锦绣山河在,物质名利还复来

https://www.bilibili.com/video/av35928275/?p=391

如若不是为了一个人,谁肯枯守一座城。城市和爱情,总是有着这样那样的关系。我们会因为一个人,去到那座城,因为那是一座爱的城;我们也会因为一个人,离开一座城,那是一座绝望的伤城。