11.4 类型判断:type-switch

    输出:

    变量 t 得到了 areaIntf 的值和类型, 所有 case 语句中列举的类型(nil 除外)都必须实现对应的接口(在上例中即 Shaper),如果被检测类型没有在 语句列举的类型中,就会执行 default 语句。

    如果仅仅是测试变量的类型,不用它的值,那么就可以不需要赋值语句,比如:

    下面的代码片段展示了一个类型分类函数,它有一个可变长度参数,可以是任意类型的数组,它会根据数组元素的实际类型执行不同的动作:

    在处理来自于外部的、类型未知的数据时,比如解析诸如 JSON 或 XML 编码的数据,类型测试和转换会非常有用。

    在示例 12.17(xml.go)中解析 XML 文档时,我们就会用到 。

    接着练习 11.1 中的内容,创建第二个类型 RSimple,它也实现了接口 Simpler,写一个函数 fi,使它可以区分 SimpleRSimple 类型的变量。