go语言中的反射

Python014

go语言中的反射,第1张

import (

"fmt"

"reflect"

)

func reflecType(x interface{}){

v := reflect.TypeOf(x)

fmt.Println("type:%v\n", v)

fmt.Println("type name:%v , rtpe kind:%v \n", v.getName(), v.getType())

}

type Cat struct{}

//通过反射设置变量的值

func reflectSetValue1(x interface{}){

v := reflect.ValueOf(x)

if v.Kind() == reflect.Int64{

v.SetInt(200) //修改的是副本, reflect 包会引发panic

}

}

//通过反射设置变量的值

func reflectSetValue2(x interface{}){

v := reflect.ValueOf(x)

//反射中使用Elem()获取指针对应的值

if v.Elem().Kind() == reflect.Int64{

v.Elem().SetInt(200)

}

}

func main(){

var a float32 = 3.14

reflectType(a) //type name:float32 type kind:float32

var b int64 = 100

reflectType(b) // type name :int64 type kind :int64

var c = Cat{}

reflectType(c) // type name :Cat type kind :struct

reflectSetValue1(&b)

fmt.Println(b) //依然为100

reflectSetValue2(&b)

}

上图不好分析,仅介绍大至可能

现在的“老毛桃PE”,是冒名的,

网上大多“有名”系统及pe都是冒名的,是商业工具,

多有广告、锁主页,捆绑软件、推广……不良行为,

因此其用心在“不良行为”上,技术可能粗糙,修改可能失误,bug可能很多

你可以查下系统是否有被改动,若有,这些改动是在pe下完成的,与你所用系统无关

之所以“冒名”这些“有名”系统及pe,不过是为了更多人用,

更多人用则“中招”可能性更多