golang 无法将Slice类型[]a 转换为 Slice[]b
2018-08-17 19:39
441 查看
因为我想做一个通用的Slice方法,AnySlice,但是将AnySlice定义为[]interface{ } 转换到别的类型,或者相互转换的时候都是会报错。
这是golang比较恶心人的一个地方了,不能做多层继承。
其实或许也是可以的,那就是要善用 unsafe.Pointer 和reflect 深层次的对象了,而不是简单的做 类型断言,类型转换了。
type AnySlice 定义为 interface{ } ,每次调用的时候都去判断 reflect.Type 是否是reflect.Slice 这种方式,简直是醉了.
对于上述两个概念的深层次运用我还需要继续学习!
相关文章推荐
- golang的interface到其他类型的数据转换
- 无法在 unicode 和非 unicode 字符串数据类型之间转换。
- TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array。
- error c2243:"类型转换" 转换存在,但无法访问
- C#与excel互操作的错误无法将类型为“Excel.ApplicationClass”的COM 对象强制转换为接口类型“Excel._Application”
- 创建一个Pager实现类在基于maven的ssh项目中出现无法install的解决方案(不兼容的类型: capture#1, 共 ?无法转换为long))
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
- 类型"string"的值无法转换为"System.Drawing.Color"
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“System.Data.SqlClient.SqlConnection的解决方法
- Java--因为char类型无法强制转换负数导致IO读取文件无法停止问题
- 无法在 unicode 和非 unicode 字符串数据类型之间转换。
- 无法将类型“string”隐式转换为“char
- 无法将类型为“NHibernate.Hql.Ast.HqlBitwiseAnd”的对象强制转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”
- 无法将 lambda 表达式 转换为类型“System.Delegate”,因为它不是委托类型
- 无法将类型为“IList”的对象强制转换为类型“System.Data.DataRowView” 。的解决方法
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类
- TypeError: Error #1034: 强制转换类型失败:无法将 flash.display::BitmapData@79aea11 转换为 flash.display.Bitmap
- 无法将类型“System.Collections.Generic.IEnumerable<EmailSystem.Model.TemplateInfo>”隐式转换为“System.Collections.Generic.List<EmailSystem.Model.TemplateInf
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- 转:类型"string"的值无法转换为"System.Drawing.Color"