Android +,++,+= 的区别

+/++/+= 运算符用了这么多年一直很混乱,甚至用的时候不生效直接代码替代,现在有时间整理一下方便后续查看

运算符:

运算符 本质作用 操作数数量 是否修改原变量 支持的类型 典型场景
+ 加法 / 拼接(返回新结果) 2 个 不修改 数值、字符串、自定义类型 计算和、拼接内容(不修改原变量)
++ 自增 1(返回新 / 旧值) 1 个 修改 仅数值类型(整数、浮点) 循环计数、简单自增
+= 加 / 拼接后赋值(缩写形式) 2 个 修改 数值、字符串、自定义类型(Kotlin) 更新变量值(加 n 或拼接内容)
  • +是加法和拼接
  • ++数值加1
  • +=加法和拼接后赋值

1.+操作符处理加法和拼接的效果

+操作符只做增加和拼接操作,不修改原有变量

  • +操作数据只做加的操作 不改变原有变量
  • +操作字符做拼接操作 不改变原有变量
go 复制代码
var a="a"

var b=a+"bc"
println("result="+a)
println("result="+b)

var c=0
var d=c+1
println("result="+c)
println("result="+d)

结果:
result=a
result=abc
result=0
result=1

2.++自增操作符数值自增1

  • count++ 后置自增 先返回变量当前值,再让变量自增 1
  • ++count 前置自增 先让变量自增 1,再返回自增后的值
go 复制代码
var a=0
var b=0
println("执行前result="+(a++))
println("执行后result="+a)
println("执行前result="+(++b))
println("执行后result="+b)

// 结果
执行前result=0
执行后result=1
执行前result=1
执行后result=1

总结: ++在前先返回再++,++在后先++再返回

3.+=数值增加和拼接后赋值

+=:将修改后的结果赋值给原变量

注意: kotlin中 += 不能作为结果返回

  • 操作数值

操作数值时: 和前置自增一致 先++再返回

csharp 复制代码
int a=0;
System.out.println("执行前result="+(a+=1));
System.out.println("执行后result="+(a));

//结果
执行前result=1
执行后result=1
  • 操作拼接
ini 复制代码
String a="a";
String b=(a+="b");
System.out.println("执行后result="+(a));
System.out.println("执行后result="+(b));
//结果
执行后result=ab
执行后result=ab

总结

  • +只增加不修改原对象
  • +=增加/拼接赋值给原数据
  • ++count先自增再返回
  • count++先返回再自增
  • +=在Kotlin 中不能做结果返回
相关推荐
阿巴斯甜12 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker13 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952714 小时前
Andorid Google 登录接入文档
android
黄林晴15 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android