zoukankan      html  css  js  c++  java
  • 类型系统的运算法则--代码阅读神器--类型关乎复合

    最近看swift的范型和typeclass很辛苦,一点也摸不着头绪;

    所以总结了以下类型系统的运算法则,以简化类型的转化、组合、变换等规则;

    is-a has-a use-a like-a as-a extension-a assign-a like-a-default

    一、类型分类:

    1、normal type:平凡类型;

    2、interface:接口类型;

    3、generic:泛型类型;

    4、moand、typeclass:高阶类型;

    类型是类型关系的结点;是关系的出发点和落脚点;

    二、类型关系:

    类型的关系关系到类型的复合;

     1、基础关系:

    is-a:继承、对象属于类型的说明;

    has-a:组合关系;

    use-a:临时变量的使用和函数参量;

    as-a:类型转换;

    2、基础泛型关系:

    generic-a:泛型类型;

    assign-a:为泛型类型指定类型参量;

    concrete-a:具体化;

    3、抽象接口:

    like-a:抽象类型、接口类型与实现关系;

    defalut-a:

    imp-default-a:

    like-a-defalut:为抽象类实现缺省功能,在swfit语言中有这种功能;

    imp-a;实现;

    4、映射关系:

    to-a:

    map-a:函数式编程的类型映射

    //下面的关系可能不考虑在列 

    5、typeclass:

    moand-a:like-a与generic-a的合体;函数式编程和随意多态中用到;

    6、给类型添加功能:

    extension-a:在类型上添加功能;

     目的是在理清类型关系的时候能够有法则和依据。

    三、编程只是关乎类型、操作和复合的游戏

     范型是has-ause-a的类型游戏;

    typeClass是is-a + has-a的游戏

    is a has a like a user a

    is-a has-a use-a like-a as-a extension-a assign-a like-a-default

  • 相关阅读:
    September 29th 2017 Week 39th Friday
    September 28th 2017 Week 39th Thursday
    September 27th 2017 Week 39th Wednesday
    September 26th 2017 Week 39th Tuesday
    September 25th 2017 Week 39th Monday
    September 24th 2017 Week 39th Sunday
    angular2 学习笔记 ( Form 表单 )
    angular2 学习笔记 ( Component 组件)
    angular2 学习笔记 ( Http 请求)
    angular2 学习笔记 ( Router 路由 )
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10981317.html
Copyright © 2011-2022 走看看