首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏黄腾霄的博客

    2019-2-24-元组的相等比较

    好在C#7.3开始,引入了元素的相等比较,让元组的易用有了大幅提升。 ---- 绑定 微软对此的介绍是“从 C# 7.3 开始,元组类型支持 == 和 != 运算符。 本作品采用 知识共享署名-非商业使用-相同方式共享 4.0 国际许可协议 进行许可。

    1K20发布于 2020-06-10
  • 来自专栏张家辉的树屋

    JavaScript: 函数式编程-类型签名

    了解 JavaScript 函数式编程目录 0-了解 JavaScript 函数式编程 - 什么是纯函数 1-了解 JavaScript 函数式编程 - 柯里化 2-了解 JavaScript 函数式编程 具体的 TypeScript 基础的函数类型定义可以看看我的文章 TypeScript 基本类型和泛型的使用 缩小可能范围 narrowing of possibility 一旦引入一个类型变量,就会出现一个奇怪的特性叫做 重点是,不管在哪种情况下,类型 a 的多态(polymorphism)都会大幅缩小 reverse 函数可能的行为的范围。 这种“可能范围的缩小”(narrowing of possibility)允许我们利用类似 Hoogle 这样的类型签名搜索引擎去搜索我们想要的函数。类型签名所能包含的信息量真的非常大。 它们保证了我们可以检查不同的 a 是否相等,并在有不相等的情况下打印出其中的差异。 我们将会在后面的章节中看到更多类型约束的例子,其含义也会更加清晰。

    1.2K10发布于 2021-02-02
  • 来自专栏Web 技术

    在 TypeScript 中使用类型守卫的 5 种方式,你都知道吗

    类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。类型守卫具有唯一的属性,可以确保测试的值返回的是布尔值类型。 它用于其缩小范围,以及检查浏览器支持。 in的基本语法如下: propertyName in objectName 在下面的例子中,in 检查 house 属性是否存在。 为了使两个变量相等,两个变量必须是同一类型的。 , b: string) { if(a === b) { // this is where the narrowing takes place. narrowed to string console.log(typeof a) // string } else { // if there is no narrowing, type remains

    3.1K30编辑于 2022-07-29
  • 来自专栏Web 技术

    如何在TypeScript中使用类型保护

    类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。类型保护具有唯一的属性,可以确保测试的值是根据返回的布尔值设置的类型。 类型保护通常用于缩小类型,它非常类似于特征检测,允许您检测值的正确方法、原型和属性。因此,您可以轻松地找出如何处理该值。 为了使两个变量相等,两个变量必须是同一类型的。 , b: string) { if(a === b) { // this is where the narrowing takes place. narrowed to string console.log(typeof a) // string } else { // if there is no narrowing, type remains

    2.2K10编辑于 2023-10-07
  • 来自专栏PPV课数据科学社区

    SPSS扫清障碍:区分T检验与F检验

    T 检验和 F 检验的关系 t 检验过程,是对两样本均数(mean)差别的显著进行检验。惟 t 检验须知道两个总体的方差(Variances)是否相等;t 检验值的计算会因方差是否相等而有所不同。 也就是说,t 检验须视乎方差齐(Equality of Variances)结果。 在t-test for Equality of Means中,第一排(Variances=Equal)的情况:t=8.892, df=84, 2-Tail Sig=.000, Mean Difference 3.到底看哪个Levene”s Test for Equality of Variances一栏中sig, 还是看t-test for Equality of Means中那个Sig. (2-tailed 4.你做的是T检验,为什么会有F值呢就是因为要评估两个总体的方差(Variances)是否相等,要做Levene”s Test for Equality of Variances,要检验方差,故所以就有

    2.9K170发布于 2018-04-23
  • 来自专栏草根专栏

    C#相等 - “==”

    ceq的意思是compare for equality,就是比较两个值是否相等,在运行时,它将会被转换为硬件上的比较,也许用的是CPU的寄存器。 针对原始类型,C#的==操作符并没有使用.NET里提供的那些Equals方法,这时==操作符使用专用的汇编语言指令来进行判断相等的。 使用 == 判断引用类型的相等 这里的引用类型不包含string。 看例子,这里我使用==来比较自定义类MyClass的两个实例是否相等: ? 而结果是两个False: ? 所以这应该也是使用CPU的硬件来进行判断相等的,那么像这种引用类型是怎么通过CPU硬件来比较的呢? 小结 总结一下,使用==来判断引用类型的相等,需要按下面的思路顺序进行考虑: 1. 该类型是否对 == 进行了重载?如果是,那就是用该重载方法;否则看2 2.

    1K20发布于 2019-05-25
  • 来自专栏草根专栏

    假象

    ceq的意思是compare for equality,就是比较两个值是否相等,在运行时,它将会被转换为硬件上的比较,也许用的是CPU的寄存器。 使用 == 判断引用类型的相等 这里的引用类型不包含string。 所以这应该也是使用CPU的硬件来进行判断相等的,那么像这种引用类型是怎么通过CPU硬件来比较的呢? 小结 总结一下,使用==来判断引用类型的相等,需要按下面的思路顺序进行考虑: 1. 该类型是否对 == 进行了重载?如果是,那就是用该重载方法;否则看2 2. 针对涉及继承的相等判断,最好还是使用object.Equals()方法,而不是==操作符。

    46210编辑于 2022-05-10
  • 来自专栏张家辉的树屋

    TypeScript: 类型判断-合理的使用 is 和 type

    Type predicates in TypeScript help you narrowing down your types based on conditionals. certain value is of type string: 来看一个栗子 function isString(s) { return typeof s === 'string'; } step 2 toUpperCase(x: unknown) { if(isString(x)) { x.toUpperCase(); // ✅ all good, x is string } } 复制代码 Narrowing down sets 缩小参数类型 This not only helps you for unknown types, or multiple types, but also to narrow down 虽然is 让 ts 分辨了 unknown 类型和 更多的其他类型,但是也让我们类型缩小了范围。为什么啦? 来看一个栗子:让我们来做一个丢色子的游戏,当你丢到 6 的时候你就赢了。

    9.2K20发布于 2021-02-02
  • 来自专栏林德熙的博客

    C# double 好用的扩展

    在很多代码需要使用数学计算,在用到 double 很难直接判断一个值是 0 或者 1 ,判断两个值相等。 ,但是实际上在进行判断的时候判断是不相等。 请注意,只有赋值的 double 才可以进行自带的判断相等,如果是计算拿到的 double ,使用自带的判断相等可能会把两个相同的 double 判断为不相同。 ,因为实际上有一些值是在数学上计算不相等,但是在这里判断是相等。 ](https://github.com/mathnet/mathnet-numerics/blob/master/src/Numerics/Precision.Equality.cs ) //

    99910发布于 2018-09-18
  • 来自专栏对角另一面

    lodash源码分析之NaN不是NaN

    作用与用法 eq 函数用来比较两个值是否相等。遵循的是 SameValueZero 规范。 var obj1 = {test: 1} var obj2 = {test: 1} var obj3 = obj1 _.eq(1,1) // true _.eq(+0, -0) // true _.eq (obj1, obj3) // true _.eq(obj1, obj2) // false _.eq(NaN, NaN) // false 几个比较规范 SameValueNonNumber 这个规范规定比较的值 == other) 在 js 中,只有 NaN 和自身是不相等的,当两个需要比较的值都是和自身不相等时,表明这两个值都为 NaN,返回 true。 Number.isNaN(other)) } 参考 ECMAScript® 2016 Language Specification MDN:Number.isNaN() MDN:isNaN() License 署名-非商业使用

    2.4K60发布于 2018-03-30
  • 来自专栏对角另一面

    lodash源码分析之NaN不是NaN

    作用与用法 eq 函数用来比较两个值是否相等。遵循的是 SameValueZero 规范。 var obj1 = {test: 1} var obj2 = {test: 1} var obj3 = obj1 _.eq(1,1) // true _.eq(+0, -0) // true _.eq (obj1, obj3) // true _.eq(obj1, obj2) // false _.eq(NaN, NaN) // false 几个比较规范 SameValueNonNumber 这个规范规定比较的值 == other) 在 js 中,只有 NaN 和自身是不相等的,当两个需要比较的值都是和自身不相等时,表明这两个值都为 NaN,返回 true。 Number.isNaN(other)) } 参考 ECMAScript® 2016 Language Specification MDN:Number.isNaN() MDN:isNaN() License 署名-非商业使用

    2.4K50发布于 2018-01-17
  • 来自专栏Rattenking

    ES6学习之路7----set数据结构

    //数组去重: let arr = [1,1,1,2,2,3,4,5,6,5,6]; console.log([...new Set(arr)]);//[1, 2, 3, 4, 5, 6] console.log a = new Set([1, 2, 3, 4]); let b = new Set([5, 4, 3, 2]); // 并集 let union = new Set([...a, ...b]); Set 内部判断两个值是否不同,使用的算法叫做“Same-value equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。 向set数据结构添加值时,采用的算法是“Same-value equality”,类似于精确相等运算符,注意“类似于”,区别就在于NaN对象在“Same-value equality”算法是相等的(NaN 添加5和“5”或者{}和{}“Same-value equality”算法不相等。 “Same-value equality”算法除了NaN,其他都遵循精确相等运算符(===)。

    53020发布于 2021-01-30
  • 来自专栏centosDai

    CA1036:重写可比较类型中的方法

    设置排序顺序意味着相等、不相等、小于和大于的常规含义不再适用。 提供 IComparable 的实现时,通常还必须重写 Equals,以便返回与 CompareTo 一致的值。 如果确定在应用程序上下文中实现运算符没有意义,那么当它在 op_Equality 以外的相等运算符上触发时,也可在该规则中禁止显示警告。 但是,如果重写 Object.Equals,则应始终重写 op_Equality 和 == 运算符。 包含特定的 API 图面 你可以根据代码库的可访问,配置要针对其运行此规则的部分。 r2.Rating); } } 另请参阅 System.IComparable System.Object.Equals 相等运算符

    1.2K20编辑于 2022-01-10
  • 来自专栏stcnb

    CA2013:请勿将 ReferenceEquals 与值类型结合使用

    值 规则 ID CA2013 类别 可靠 修复是中断修复还是非中断修复 非中断 原因 使用 System.Object.ReferenceEquals 方法来测试一个或多个值类型是否相等。 如何解决冲突 若要解决此冲突,请将其替换为更合适的相等检查,如 ==。 Console.WriteLine(Object.ReferenceEquals(int1, int2)); // false // Use appropriate equality operator (object.Equals(int1, int2)); // true 何时禁止显示警告 不可忽略此规则的警告,我们建议使用更合适的相等运算符,如 ==。 相关规则 CA2231:重写 ValueType.Equals 时应重载相等运算符 另请参阅 可靠规则

    1.9K00编辑于 2022-02-20
  • 来自专栏C++核心准则原文翻译

    C++核心准则ES.64:使用T{e}记法构造对象

    The T{e} construction syntax doesn't allow narrowing. int i, double d, char* p, long long lng) { int x1 = int{ch}; // OK, but redundant int x2 ; use a cast if you need to int y1 = int(ch); // OK, but redundant int y2 = int(d); ; use a cast if you need to int z1 = (int)ch; // OK, but redundant int z2 = (int)d; 之间没有移植。 Note(注意) Avoid casts (explicit type conversion) and if you must prefer named casts.

    79210发布于 2020-05-29
  • 来自专栏林德熙的博客

    C# double 好用的扩展

    在很多代码需要使用数学计算,在用到 double 很难直接判断一个值是 0 或者 1 ,判断两个值相等。 ,但是实际上在进行判断的时候判断是不相等。 请注意,只有赋值的 double 才可以进行自带的判断相等,如果是计算拿到的 double ,使用自带的判断相等可能会把两个相同的 double 判断为不相同。 ,因为实际上有一些值是在数学上计算不相等,但是在这里判断是相等。 Numerics/Precision.cs https://github.com/mathnet/mathnet-numerics/blob/master/src/Numerics/Precision.Equality.cs

    61920编辑于 2022-08-04
  • 来自专栏方法论

    java.util.Objects[源码解读]

    = null && a.equals(b)); } 此方法用来比较两个对象是否相等,如果相等返回true,否则返回false。 int[] ary1 = {1,2,3}; int[] ary2 = {1,2,3}; boolean res1 = Objects.equals(ary1 ,ary2); boolean res2 = Objects.deepEquals(ary1,ary2); System.out.println("res1:" + res1 ); System.out.println("res2:" + res2); } 输出结果: res1:false res2:true 可以看到,数组ary1和ary2两个数组内部元素都是相等的 所以,这个“真的(deeply)”可以这么理解:当元素为对象时,判断这两个对象是否相等,当元素为对象数组时,判断数组内部元素是否一一相等,并返回最终判断结果。 ?

    1.5K20发布于 2020-04-14
  • 来自专栏Czy‘s Blog

    Js中==与===

    Js中==与=== JavaScript中提供==相等运算符与===严格相等运算符,建议是只要变量的数据类型能够确定,一律使用=== ==相等运算符 ==在判断相等时会进行隐式的类型转换, 其比较遵循一些原则 ,即先转换类型再比较 如果有一个操作数是布尔值,则在比较相等之前先将其转换为数值,即是调用Number()方法 如果一个操作数是字符串,另一个是数值,在比较相等之前先将字符串转换为数值,同样调用Number 以及null == undefined,此外任何其他组合,都不相等。 1 == true //true // Number Boolean 2 == true //false 1 == "1" //true // Number String [] == "" //true console.log("exec"); 参考 https://www.zhihu.com/question/31442029 https://dorey.github.io/JavaScript-Equality-Table

    4.7K30发布于 2020-08-27
  • 来自专栏从零开始学自动化测试

    Selenium2+python自动化56-unittest之断言(assert)

    翻译:如果两个对象不能相等,就返回失败,相当于return: first==second 2.这里除了相比较的两个参数first和second,还有第三个参数msg=None,这个msg参数就是遇到异常后自定义输出信息 三、unittest常用的断言方法 1.assertEqual(self, first, second, msg=None) --判断两个参数相等:first == second 2.assertNotEqual (self, first, second, msg=None) --判断两个参数不相等:first ! msg=None) | A list-specific equality assertion. | | Args: | list1: The first msg=None, seq_type=None) | An equality assertion for ordered sequences (like lists and tuples).

    96060发布于 2018-04-08
  • 来自专栏python3

    在python中如何比较两个float

    因此我们在比较两个float是否相等时,不能仅仅依靠 == 来进行判断,而是当他们两者的差小于一个我们可以容忍的小值时,就可以认为他们就是相等的。 Python中是如何解决的? StackOverFlow有类似的问题: what-is-the-best-way-to-compare-floats-for-almost-equality-in-python 简单粗暴的判断方法 return abs(f1 - f2) <= allowed_error python3.5之后,PEP485提案中已给出了解决方案。 PEP 485: A function for testing approximate equality PEP 485 adds the math.isclose() and cmath.isclose

    6.3K40发布于 2020-01-06
领券