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 中不能做结果返回
相关推荐
三少爷的鞋1 小时前
Repository 方法设计:suspend 与 Flow 的决选择指南(以朋友圈为例)
android
阿里云云原生2 小时前
Android App 崩溃排查指南:阿里云 RUM 如何让你快速从告警到定位根因?
android·java
ULTRA??3 小时前
归并排序算法实现,kotlin,c++,python
c++·python·kotlin
cmdch20174 小时前
手持机安卓新增推送按钮功能
android
攻城狮20154 小时前
【rk3528/rk3518 android14 kernel-6.10 emcp sdk】
android
何妨呀~4 小时前
mysql 8服务器实验
android·mysql·adb
QuantumLeap丶5 小时前
《Flutter全栈开发实战指南:从零到高级》- 25 -性能优化
android·flutter·ios
木易 士心6 小时前
MVC、MVP 与 MVVM:Android 架构演进之路
android·架构·mvc
百锦再6 小时前
国产数据库的平替亮点——关系型数据库架构适配
android·java·前端·数据库·sql·算法·数据库架构
走在路上的菜鸟6 小时前
Android学Dart学习笔记第十三节 注解
android·笔记·学习·flutter