首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏张家辉的树屋

    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检验

    它主要用于:均数差别的显著检验、分离各有关因素并估计其对总变异 的作用、分析因素间的交互作用、方差齐(Equality of Variances)检验等情况。 4. T 检验和 F 检验的关系 t 检验过程,是对两样本均数(mean)差别的显著进行检验。惟 t 检验须知道两个总体的方差(Variances)是否相等;t 检验值的计算会因方差是否相等而有所不同。 也就是说,t 检验须视乎方差齐(Equality of Variances)结果。 4.你做的是T检验,为什么会有F值呢就是因为要评估两个总体的方差(Variances)是否相等,要做Levene”s Test for Equality of Variances,要检验方差,故所以就有 若两总体方差相等,则直接用t检验,若不等,可采用t”检验或变量变换或秩和检验等方法。 其中要判断两总体方差是否相等,就可以用F检验。

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

    C#相等 - “==”

    ceq的意思是compare for equality,就是比较两个值是否相等,在运行时,它将会被转换为硬件上的比较,也许用的是CPU的寄存器。 针对原始类型,C#的==操作符并没有使用.NET里提供的那些Equals方法,这时==操作符使用专用的汇编语言指令来进行判断相等的。 使用 == 判断引用类型的相等 这里的引用类型不包含string。 看例子,这里我使用==来比较自定义类MyClass的两个实例是否相等: ? 而结果是两个False: ? 所以这应该也是使用CPU的硬件来进行判断相等的,那么像这种引用类型是怎么通过CPU硬件来比较的呢? 针对这两个tuple,我做了三个相等判断,通过第一个ReferenceEquals方法我们可以知道这两个tuple变量指向不同的实例。

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

    假象

    ceq的意思是compare for equality,就是比较两个值是否相等,在运行时,它将会被转换为硬件上的比较,也许用的是CPU的寄存器。 使用 == 判断引用类型的相等 这里的引用类型不包含string。 所以这应该也是使用CPU的硬件来进行判断相等的,那么像这种引用类型是怎么通过CPU硬件来比较的呢? string 我们都知道,==用来判断string相等的时候,比较的是string值,而不是引用地址。 针对涉及继承的相等判断,最好还是使用object.Equals()方法,而不是==操作符。

    46210编辑于 2022-05-10
  • 来自专栏方法论

    java.util.Objects[源码解读]

    = null && a.equals(b)); } 此方法用来比较两个对象是否相等,如果相等返回true,否则返回false。 这么说吧,equals方法是判断两个对象是否相等的,但是如果是内部元素相等的两个不同数组,通过equals方法是判断不出来的,看下面的例子: @Test public void test1(){ 所以,这个“真的(deeply)”可以这么理解:当元素为对象时,判断这两个对象是否相等,当元素为对象数组时,判断数组内部元素是否一一相等,并返回最终判断结果。 ? 需要注意的是:如果只有一个参数,调用此方法和调用hashCode方法生成的hash码并不相等11.isNull(Object obj) /** * Returns {@code true} if the provided reference is {@code null} otherwise

    1.5K20发布于 2020-04-14
  • 来自专栏对角另一面

    lodash源码分析之NaN不是NaN

    作用与用法 eq 函数用来比较两个值是否相等。遵循的是 SameValueZero 规范。 首先,看第一部分: value === other 就是这么一段,符合的是 Strict Equality Comparison 规范,通过对比可以发现, Strict Equality Comparison Strict Equality Comparison 规定就算 x 和 y 都为 NaN 时,返回的是 false, NaN === NaN 返回的就是 false。 == 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 规范。 首先,看第一部分: value === other 就是这么一段,符合的是 Strict Equality Comparison 规范,通过对比可以发现, Strict Equality Comparison Strict Equality Comparison 规定就算 x 和 y 都为 NaN 时,返回的是 false, NaN === NaN 返回的就是 false。 == other) 在 js 中,只有 NaN 和自身是不相等的,当两个需要比较的值都是和自身不相等时,表明这两个值都为 NaN,返回 true。 Number.isNaN(other)) } 参考 ECMAScript® 2016 Language Specification MDN:Number.isNaN() MDN:isNaN() License 署名-非商业使用

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

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

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

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

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

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

    1.9K00编辑于 2022-02-20
  • 来自专栏Swift社区

    Swift 周报 第十七期

    提案:Swift 论坛讨论人气最高的提案 Swift 论坛:比较两个 “any Error” 的相等 推荐博文:iOS 16 统计图实战汇总 话题讨论: 大家觉得互联网行业会不会持续走下坡路? Swift论坛 Move-Only 类型的非正式介绍[6] 相同的值相等的复杂保证[7] let foo: String = .... let bar = foo foo == bar // is ] 讨论比较两个“any Error”的相等[12] 问题描述:有一个错误类型,它包含另一个存在的any Error: @frozen public struct RecursiveError<Location Move-Only 类型的非正式介绍: https://forums.swift.org/t/an-informal-introduction-to-move-only-types/61358[7]相同的值相等的复杂保证 forums.swift.org/t/detect-the-number-of-usb-ports-available-on-the-mac-device/61321[12]比较两个“any Error”的相等

    2.8K10编辑于 2022-12-12
  • 来自专栏Czy‘s Blog

    Js中==与===

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

    4.7K30发布于 2020-08-27
  • 来自专栏开发者技术前线

    你应该切换到Kotlin开发

    版本的String.format(). val x = 4 val y = 7 print("sum of $x and $y is ${x + y}") // sum of 4 and 7 is 11 你可以停止使用equals()方法来判断相等,因为== 这个操作符将会检测结构相等。 val john1 = Person("John") val john2 = Person("John")john1 == john2 // true (structural equality) john1 === john2 // false (referential equality 七、默认参数 不需要定义几个相似参数的方法 fun build(title: String, width Int, y: Int -> x + y } // type: (Int, Int) -> Int val res = sum(4,7) // res == 11

    77500发布于 2020-11-23
  • 来自专栏业余草

    谁在用a.equals(b)判断对象相等直接开除!

    Otherwise, equality is determined by using * the {@link Object#equals equals} method of the first * * @param a an object * @param b an object to be compared with {@code a} for equality 如果不相等,后面的表达式的意思是,先判断 a 不为空,然后根据上面的知识点,就不会再出现空指针。 所以,如果都是 null,在第一个判断上就为 true 了。 而a.equals(b)是进行逻辑比较,当内容相同时,返回 true,所以通常需要重写该方法来提供逻辑一致的比较。

    45610编辑于 2021-12-06
  • 来自专栏软件开发

    Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    > <context:component-scan base-package="com.zhangguo.springmvc02" /> base-package属性用于指定扫描的基础包,可以缩小扫描的范围 多个值可以是“,”分隔“颜色=红、绿、蓝”或变量名称可以重复“颜色=红;颜色=绿色;颜色=蓝”,如下所示: // GET /pets/42;q=11;r=22 @RequestMapping findPet(@PathVariable String petId, @MatrixVariable int q) { // petId == 42 // q == 11 2.3、consumes属性指定请求的Content-Type @RequestMapping 注解的 produces 和 consumes 这两个元素来缩小请求映射类型的范围,达到处理生产和消费对象的目的 ",headers="Host=localhost:8088") public String action11(Model model) { model.addAttribute

    1.5K20编辑于 2022-05-09
  • 来自专栏Flutter

    dart collection 库

    CaseInsensitiveEquality equality = const CaseInsensitiveEquality(); bool equal = equality.equals('abc 就类似 Java 中重写类的 equals/hashCode 方法后调用 equals 判断两个对象是否相等。EqualityBy每个元素使用构造方法的函数参数的返回值来判断是否相等。 如果 Map,就是键值都相等。 2, 'cDE': 4 }, (String key)=>key.toUpperCase()); assert(c2.length==2);EqualityMap/EqualitySet键的相等由参数的 Equality 对象的 equals 判断 EqualityMap map = EqualityMap(const CaseInsensitiveEquality());EqualitySet set

    51610编辑于 2024-08-27
  • 来自专栏FHADMIN

    为什么判断对象是否相等, 不建议用 equals ?

    Otherwise, equality is determined by using * the {@link Object#equals equals} method of the first * * @param a an object * @param b an object to be compared with {@code a} for equality 如果不相等,后面的表达式的意思是,先判断a不为空,然后根据上面的知识点,就不会再出现空指针。 所以,如果都是null,在第一个判断上就为true了。 而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致的比较。 ​

    63330发布于 2021-07-06
  • 来自专栏centosDai

    代码样式规则选项

    你可以启用或禁用单个规则,并可通过严重级别配置强制执行每个规则的程度。 提示 在 EditorConfig 文件中定义代码样式选项,就是在配置代码样式分析器分析代码的方式。 dotnet_style_coalesce_expression = true:suggestion dotnet_style_prefer_is_null_check_over_reference_equality_method Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing

    86320编辑于 2022-01-09
  • 来自专栏A周立SpringCloud

    为什么不建议你用 a.equals(b) 判断对象相等

    Otherwise, equality is determined by using * the {@link Object#equals equals} method of the first * * @param a an object * @param b an object to be compared with {@code a} for equality 如果不相等,后面的表达式的意思是,先判断a不为空,然后根据上面的知识点,就不会再出现空指针。 所以,如果都是null,在第一个判断上就为true了。 而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致的比较。

    1K10发布于 2021-07-29
领券