groovy中对象的比较以及非空判断

072、LLC谐振变换器的谐振电容选型 文章摘要: 本文深入探讨了LLC谐振变换器中谐振电容的选型要点。作者通过实际案例指出,谐振电容的高频特性(如ESR、ESL)会显著影响LLC性能,导致死区振铃或EMI问题。对比薄膜电容(稳定性好但体积大)和MLCC(体积小但存在直流偏置与温漂缺陷),建议100W以上优先选薄膜电容。强调需关注容值精度、耐压、纹波电流及布局对称性,避免寄生参数引发谐振异常。最后提出验证方法(热成像与波形观测)及选型清单,并分享经验:薄膜电容可靠性更优,MLCC需严格测试,布局时应缩短走线以降低环路辐射。 阅读详情
AI摘要

本文介绍Groovy语言中的对象比较方法,包括字符串、Map和List集合的比较,以及如何判断对象是否为空。同时展示了Groovy语言在这些操作上的简洁性和高效性。

上几次曾经说过groovy中字符串以及集合的基本使用,但是有时我们可能要对这些对象进行比较,这次就围绕这个来分享我学到的东西,分享之前来补充一下in的使用,在前面几次的分享中其实已经使用过但是没有专门拿出来说过

1.in的使用

in一般和for一起配合使用,产生的效果类似foreach,来看下吧

def arr=["上海","南京","福州"]
for(item in arr){
      println  item
}
上面的代码可以遍历list集合


2.groovy对象的比较

这种情况使用就比较多了,例如字符串、map集合、List集合的比较,来看看下面的这段代码:

 //groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":20]
        def m2=["name":"李明","age":21]
        def m3=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }

特别是字符串的比较,是不是比java要简洁的多呢


如果要比较两个对象的引用是否相同在groovy中可以使用is,如下所示:

  //判断对象的引用是否相同---(重要)
  println m1.is(m3)

3.if判断对象是否为空

groovy中判断对象是否为空,直接if(对象){}即可,这种便捷真的很强大


        //if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }

但是这种写法还是不够简洁,groovy还提供了一种更简单的写法即 ?.

//更为方便的判断对象是否为空的操作符 ?.-------(重要)
println "${m5?.name}"

学了这段时间的groovy觉得收获还是很大的,下次打算分享一点groovy的特色知识MOP。


全部代码:

package org.lxh
public class UseRange{

	public static void main(def args){
        //定义一个range
		def range=1..15
		println range.contains(10);
		println range.from;
		println range.to;
        //使用range输出7天的日期
        def today = new Date()
        def nextWeek = today + 7
        (today..nextWeek).each{
            println it
        }
        //in的用法------(重要)
        def arr=["上海","南京","福州"]
        for(item in arr){
           println  item
        }
        //groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":20]
        def m2=["name":"李明","age":21]
        def m3=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }
        //判断对象的引用是否相同---(重要)
        println m1.is(m3)
        //if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }
        //更为方便的判断对象是否为空的操作符 ?.-------(重要)
        println "${m5?.name}"
	}
	
}


科研绘图系列:R语言绘制世界地图数据分布(world map) 阅读详情

相关推荐

三维重建笔记_光束平差法(Bundle Adjustment, BA)

目录 1 光束平差法(Bundle Adjustment, BA) 1.1 SFM (Structure‐from‐Motion) 定义 问题描述 1.2 重投影误差 (Reprojection Error) 目标函数 1.3 使用 Levenberg‐Marquardt Algorithm 进行优化 问题描述 简化目标函数 参考 Gauss‐Newton Method ...

惊鸿一博 2万+

Groovy Tip 3 如何在if条件语句中判断对象为空

            Groovy Tip 3 如何在if条件语句中判断对象为空 在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断:     if(str!=null&&!str.equals(""))     {        ...... }输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equal

软件的信雅达 1万+

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 292

Groovy开发中参数判空操作;

个人groovy开发工具分享

OGtwelve的博客 842

Vivado 2018.3 SDK烧写bin文件避坑指南:如何解决QSPI模式下的常见错误

本文深入解析了在Vivado 2018.3 SDK中为Zynq FPGA烧写QSPI Flash时遇到的常见问题,特别是启动模式为QSPI时出现的警告与失败。文章从Zynq启动机制入手,提供了修改FSBL代码以强制使用JTAG模式、调整硬件配置等核心解决方案,并分享了实战案例与最佳实践,帮助开发者高效避坑,确保bin文件烧写成功。

arduino9maker的博客 389

RK3568(buildroot)利用squashfs+overlay实现嵌入式系统高可靠存储方案

本文详细介绍了在RK3568嵌入式平台上,基于Buildroot系统,利用squashfs只读根文件系统与overlayfs可写层相结合的高可靠存储方案。该方案能有效防止设备意外断电导致的系统文件损坏,通过内核配置、启动脚本编写及镜像制作,实现系统核心的只读保护与用户数据的持久化分离,显著提升嵌入式设备的现场稳定性。

weixin_29189381的博客 548

Groovy Tip 4 对象非空判断及“?”运算符

                       Groovy Tip 4 对象非空判断及“?”运算符 对于一个Domain类对象,如下面的例子:class Empl{        String name} 我们需要对它进行操作,比如打印“name”属性的值,我们首先要对它进行非空判断,如下:    def em    if(em)    {     

软件的信雅达 8278

GWAS与eQTL相结合,进一步筛选疾病相关基因

欢迎关注”生信修炼手册”!在GWAS分析结果中,大部分显著的SNP位点都位于非编码区,很难直接挖掘这些位点的调控机制。通常假设与疾病关联的SNP位点通过调控基因表达来发挥作用,而eQTL...

庐州月光的博客 1万+

Gradle学习:Groovy基本使用

一、概述 Groovy是一种动态语言。它和Java一样,也运行于Java虚拟机中。它基于Java并扩展了Java。 动态语言,是指运行时才确定数据类型的语言,变量在使用之前无需申明类型。例如JavaScript、Python。相对的,编译时变量的数据类型就可以确定的语言为静态语言,例如Java、C++。 它是一种面向对象的语言,同时也能作为一种纯粹的脚本语言。 Groovy内部会把代码编译为Java class文件然后启动虚拟机来执行(实际上,由于Groovy Code在真正执行的时候已经变成了

KWMax 660

Flutter版本升级踩坑实录:从3.27到3.35,我们是如何修复Impeller引擎导致的花屏问题的?

本文详细记录了团队在Flutter版本升级过程中遇到的Impeller引擎导致的花屏问题及解决方案。从问题诊断到最终升级至稳定版3.35,文章分享了排查步骤、升级策略和性能对比数据,为开发者提供了实用的参考经验。

weixin_26854555的博客 504

YOLO26改进策略【多YAML融合】| UNetV2 + BiFormer + WIoU

Wise-IoU是一种基于IoU的损失函数,旨在解决目标检测中边界框回归损失函数在处理低质量训练数据时的问题。

Limiiiing的博客 218

groovy if 判断字符串_Groovy Tip 3 如何在if条件语句中判断对象为空

匿名用户1级2013-11-12 回答Groovy Tip 3 如何在if条件语句中判断对象为空在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,经常需要对一个字符串进行如下的判断:if(str!=null&&!str.equals("")){......}输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equals("")”语句中的“!”导致代码出现逻辑...

weixin_39827034的博客 2541

工业级稳定!C# 实现 Modbus RTU 多设备并发通信实战

摘要:本文提出一种基于C#的Modbus RTU多设备并发通信方案,解决工业自动化中单线程通信的串口抢占、数据阻塞等问题。采用任务队列+线程安全锁+异步调度的三层架构,实现16台及以上RTU设备的稳定并发读写。方案包含串口管理单例、Modbus通信核心和任务调度层,支持超时重试、异常捕获等工业级容错机制。通过NModbus库和.NET框架,提供可直接用于工业现场的代码实现,已在工控项目中长期验证,有效提升多设备通信效率和稳定性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 581

Groovy中对象比较的奥秘

使用==和equals()方法来比较这两个对象时,结果都是true,因为它们的num属性相等。但是,使用is()方法来比较它们时,结果是false,因为myClass1和myClass2是两个不同的对象实例,它们的引用不同。这是因为num1和num2虽然数值相同,但它们是两个不同的对象实例,它们在内存中占据不同的位置,所以它们的引用是不同的。这是因为BigDecimal类的equals()方法是根据数值的相等性来定义的,所以当两个BigDecimal对象的数值相等时,它们就被认为是相等的。

m0_62153576的博客 606

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

groovy条件语句判空

     Groovy  如何在if条件语句中判断对象为空 在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断:     if(str!=null&&!str.equals(""))     {        ...... }输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equals("")”语句中的“!”导致代码出...

csy_system的博客 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

groovy if 判断字符串_比较groovy中的版本字符串

Hey I have created a Groovy script that will extract the version numbers of some folder. I would then like to compare the version numbers and select the highest.I got my script to run through the dir ...

weixin_39575047的博客 1120

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Groovy 真值规则

目录 1. 布尔表达式 2. 集合和数组 3. 匹配器(Matcher) 4. 迭代器和枚举 5. 映射 6. 字符串 7. 数字 8. 对象引用 9. 使用 asBoolean 方法定制真值规则 Groovy 通过下面这些规则来决定要将一个表达式求值为布尔值时,结果是真(true)还是假(false)。 1. 布尔表达式 如果布尔值为 true,表达式结果就为 true,...

Matthew的博客 1405

分析一次Groovy的接口、布尔判断、操作符重载

更准确的说,表达式的结果还与对象的类型有关。因为在ComplexNumber类上添加了plus()方法,所以可以使用+操作符把两个复数加到一起,得到又一个作为结果的复数。只需要创建一个映射,以每个方法的名字作为键,以方法对应的代码体作为键值,同时使用简单的Groovy风格,用冒号(:)分隔方法名和代码块即可。Groovy没有强制实现接口中的所有方法:可以只定义自己关心的,而不考虑其他方法。除了使用Groovy内建的布尔求值约定,在自己的类中,还可以通过实现asBoolean()方法来编写自己的布尔转换。

鸿蒙的技术博客 666

groovy if 判断字符串,比较groovy中的版本字符串

Hey I have created a Groovy script that will extract the version numbers of some folder. I would then like to compare the version numbers and select the highest.I got my script to run through the dir ...

weixin_36053926的博客 661

Groovy 之 面向对象

对象 ​ 首先创建一个 Person 类 class Person { String name; Integer age; /** * 定义方法 ,def 代表的就是 object * @param years */ def increateAge(Integer years) { this.age += years...

345丶 1384

记录个Java/Groovy的小问题:空字符串调用split函数返回非空数组

所以说,split方法当字符串为空字符串时会返回带有空字符串元素的数组!时,这个split方法转换的数组/列表是带有一个空字符串元素的!这行,经过测试可以发现个现象:当output字符串为空字符串。这种格式的字符串,用。分隔应该是没问题的。

拾级而上 536

【Groovy】类和对象

使用 abstract 修饰的类称为抽象类,抽象类中可以有抽象函数,这些函数被添加了 abstract 修饰符,父类不能实现,子类必须重写实现(子类如果也是抽象类除外)。抽象类不能被实例化,只能实例化其具化子类,抽象类中允许有具化的函数。@Override//def peo = new People() // 编译报错, 抽象类不能被实例化stu.say() // 打印: xiao min: Hello。

little_fat_sheep 1236

groovy if判断

/** * if 结构 * 在java中条件的表达式计算结果只能为布尔值 * 在groovy中 * 传入boolean或Boolean时,与java相同 * 传入数字时,非0为真,0为假 * 传入字符串时,空字符串为假,反之为真 * 传入集合时,元素个数等于0为假,元素个数大于0为真 * 传入对象时,null为假,反之为真 */ /////////////////////////

huanglianggu的专栏 1万+

Groovy

Groovy虽然支持Java的语法但它并没有强迫我们学习新的类和库,而是通过向JDK中各种类添加方法,所以说Groovy扩展了JDK,这些扩展称之为GDK(Groovy JDK)。

qq_48114126的博客 1531

groovy 面向对象

1. groovy中类,接口等的定义和使用 1.1 类 右键->New->Groovy Class创建一个groovy类,名字是Person。groovy默认所有的类都是public,所以创建完成的class前面没有public进行修饰。 /** * 1.groovy中默认都是public * 2.所有的groovy类都默认集成了一个GroovyObject类 * 这是g...

我是一只小菜鸟,飞丫飞丫飞~~~ 2172

groovy lambda_Java Lambda流和Groovy Clouse的比较

groovy lambda 这篇博客文章将研究List数据结构上的一些谚语操作,并对Java 8/9和Groovy语法进行一些比较。 因此,首先是数据结构。 这只是一个简单的橄榄球球员,具有名字和等级。 Java class RugbyPlayer { private String name; private Integer rating; RugbyP...

最佳 Java 编程 1707
上一篇: 第一个Grails程序
下一篇: Grails重定向以及Render、Session的使用
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值