类型系统的运算法则--代码阅读神器--类型关乎复合

Posted feng9exe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型系统的运算法则--代码阅读神器--类型关乎复合相关的知识,希望对你有一定的参考价值。

最近看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-a\use-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

以上是关于类型系统的运算法则--代码阅读神器--类型关乎复合的主要内容,如果未能解决你的问题,请参考以下文章

函数式编程的类型转换

MySQL索引优化系列:索引全用及最左法则

#yyds干货盘点#MySQL索引优化系列:索引全用及最左法则

==与===

2.拷贝控制操作(三/五法则)

《代码大全》阅读笔记-12-基本数据类型