zoukankan      html  css  js  c++  java
  • 具有关联类型的协议

    具有关联类型的协议

    具有接口类型和泛型双重属性;是接口化的高阶泛型;

    具有关联类型的协议不能作为类型,只能作为类型约束使用;

    类型的具体形态:变量的类型、函数的输入输出类型、容器元素的类型;

    带有关联类型的协议作为类型只能和泛型类型一起使用;要使用带有关联类型的协议,必须先定义泛型类型;

    在泛化为构造器类型时,作为typeclass类型使用;

    具体化的方向有三个:

    1、具体化:直接实现为具体类型;

    相对于无关联类型的协议:

    无关联类型的协议可以直接作为类型来使用;

    2、泛型化:泛化为类型构造器;

    配置了类型的类型构造器类型也可以作为类型来使用;

    3、接口化:进行类型擦除;

    类型擦除后的关联协议类型可以作为类型来使用;

    它使用的技术:泛型化类型构造器、协议具体化、代理包装器、接口隐藏器;

    使用的方向只有一个:

    要使用具有关联协议的类型特征的变量,先定义一个符合协议的泛型,用这个泛型定义变量;

    泛型类型的二阶构造:

    1、用类型指定构造类型;

    2、构造变量进行赋值;

    如果有类型推断,类型构造可以省略?

  • 相关阅读:
    在source insight中阅读Python代码
    修改linux命令行提示符
    gcc链接程序时出现undefined reference to""错误
    [转]init.d解析
    [转]Linux中find常见用法示例
    Linux的网卡由eth0变成了eth1,如何修复?
    测试使用Windows Live Writer
    黑盒测试
    白盒测试技术(二)
    白盒测试技术(一)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10539100.html
Copyright © 2011-2022 走看看