Advertisement

在 interface 中访问 array 或 slice 在指定 index 处的 struct field

阅读量:

其核心实现方式主要依赖于反射机制,go-expression,在EL表达式中提取数组及切片的索引信息同样采用此种实现路径。

首先需要定义一个结构体

复制代码
    type Order struct {
    	name string
    	age  int
    }
    
    
    
      
      
      
      
      
    

设定一个情境,其中存在一个名为test的字段,其数据类型为interface{},用于接收一组Order对象的切片。当前的目标是从该Order切片中获取索引位置为1的元素所对应的name字段的值。

复制代码
    	orders := make([]Order, 2)
    	orders[0] = Order{name: "lisi", age: 18}
    	orders[1] = Order{name: "wang", age: 24}
    	var test interface{}
    	test = orders
    	//获取orders切片下标为1的数据
    	index := reflect.ValueOf(test).Index(1)
    	//取得Or

全部评论 (0)

还没有任何评论哟~