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 中不能做结果返回
相关推荐
灿烂阳光g4 小时前
domain_auto_trans,source_domain,untrusted_app
android·linux
低调小一5 小时前
Android传统开发 vs Android Compose vs HarmonyOS ArkUI 对照表
android·华为·harmonyos
雨白6 小时前
Java 多线程指南:从基础用法到线程安全
android·java
00后程序员张7 小时前
详细解析苹果iOS应用上架到App Store的完整步骤与指南
android·ios·小程序·https·uni-app·iphone·webview
丑小鸭是白天鹅8 小时前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
程序员江同学8 小时前
ovCompose + AI 开发跨三端的 Now in Kotlin App
android·kotlin·harmonyos
2501_915106328 小时前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
消失的旧时光-19438 小时前
Kotlinx.serialization 使用讲解
android·数据结构·android jetpack
charlie1145141918 小时前
Kotlin 的 apply / with / run 详解
开发语言·kotlin·程序设计·面对对象