看源码的时候看到: Scala上界(<:)和下界(>:) 1) U >: T 这是类型下界的定义,也就是U必须是类型T的父类(或本身,自己也可以认为是自己的父类)。 2) S <: T 这是类型上界的定义,也就是S必须是类型T的子类(或本身,自己也可以认为是自己的子类)。 然后scala中的泛型符号 ...
分类:
其他好文 时间:
2017-06-16 16:44:35
阅读次数:
136
Laplace transform 通过拉普拉斯变换,可将以时间t为自变量的函数f(t)转化为以复数s为自变量的函数F(s),其逆变换称为拉普拉斯逆变换,即将F(s)变换为f(t),具体变换为: 常用的拉普拉斯变换如下: 当多个函数相乘时: 示例如下: ...
分类:
其他好文 时间:
2017-06-09 23:42:41
阅读次数:
293
图像重建有变换法和迭代法,本文主要分析变换法。根据二维图像的投影,与其傅里叶变换之间的关系,得出图像重建的4种方法,直接傅里叶反变换、先反投影后滤波、先滤波后反投影、卷积反投影。直接傅里叶反变换法利用中心切片定理,先求投影数据的一维傅里叶变换,然后二维插值栅格化得到二维傅里叶变换数据,逆变换后得出目... ...
分类:
其他好文 时间:
2017-06-08 01:21:14
阅读次数:
457
1、协变性是指方法能返回从委托的返回类型派生的一个类型。 2、逆变性是指方法获取的参数可以是委托的参数类型的基类。 分割线 如上面的例子,SomeMethod 的返回类型(string)派生自委托的返回类型(Object);这种协变性是允许的。SomeMethod 的参数类型(Stream)是委托的 ...
分类:
其他好文 时间:
2017-06-05 20:24:49
阅读次数:
246
逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解析逆变与协变。 变的概念 我们都知道.Net里或者说在OO的世界里,可以安全地把子类的引用赋给父类引 ...
分类:
其他好文 时间:
2017-05-31 22:20:19
阅读次数:
356
目录 二十一、限制类型的可见性 二十二、通过定义并实现接口替代继承 二十三、理解接口方法和虚方法的区别 二十四、用委托实现回调 二十五、用事件模式实现通知 二十六、避免返回对内部类对象的引用 二十七、让类型支持序列化 二十八、提供组粒度的因特网服务 API 二十九、支持泛型协变和逆变 二十一、限制类 ...
逆变和协变在存在于强类型语言中,尽管非常少提及,可是里面蕴含了面向对象的世界观。感谢和我一起讨论这个问题的人。 这里用了C#、Scala的语法作为演示样例,事实上逆变和协变的概念跟语言本身关系不大,事实也是如此。 一、定义 逆变的參数能够由指定的类型的子类型取代,协变的參数能够由指定类型的父类型取代 ...
分类:
其他好文 时间:
2017-05-14 12:11:15
阅读次数:
181
关于协变和逆变要从面向对象继承说起。继承关系是指子类和父类之间的关系;子类从父类继承所以子类的实例也就是父类的实例。比如说Animal是父类,Dog是从Animal继承的子类;如果一个对象的类型是Dog,那么他必然是Animal。 协变逆变正是利用继承关系 对不同参数类型或返回值类型 的委托或者泛... ...
代换,S盒。扩散和混淆,这些概念构成了分组password学的基础。 假设明文和密文的分组长度都为n比特,则明文的每个分组都有2n个可能的取值; 代换: 为使加密运算可逆(即解密运算可行),明文的每个分组都应产生唯一的一个密文分组(多对一),这样 的变换是可逆的,称明文分组到密文分组的可逆变换为代换 ...
分类:
编程语言 时间:
2017-05-06 14:14:03
阅读次数:
279
在好多的.net的书籍中都看到过逆变和协变的概念,也在网上搜了一些关于这两个概念的解释,但是一直感觉似懂非懂的,直到最近在项目中实际遇到了一个问题,恰好用到了逆变,总算对逆变的理解又进了一步。 逆变只能用到泛型接口和委托中,以前一直不理解为什么要用在泛型中,今天终于想明白了。在介绍逆变之前,先来说说 ...