Kotlin 运算符

《Kotlin从小白到大牛》第8章:运算符 第8章 运算符 Kotlin语言中的运算符(也称操作符)在功能上都与Java、C 和C++极为相似。本章为大家介绍Kotlin语言中一些主要的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 8.1 算术运算符 Kotlin中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符和二元运算符。 8.1.1 一元运算符 算术一元运算符一共有3个,分别是-、++和–。具体说明参见表8-1。 表8-1中,-a是对a取反运算,a++或a–是在表达式运算 阅读详情

Kotlin 运算符

1. kotlin 单目运算符


var field = 1

// kotlin 自增运算符
field++
++field
field.inc() // 同自增运算

// kotlin 自减运算符
field--
--field
field.dec() // 同自减运算

println(field) // 1


2. kotlin 算术运算符


var a = 3
val b = 4
var result = 0

result = a + b // 7,同a.plus(b)
result = a - b // -1,同a.minus(b)
result = a * b // 12,同a.times(b)
result = a / b // 0,同a.div(b)
result = a % b // 3,同a.rem(b)

println(result)

// kotlin in !in 判断包含关系
val source = "input text"
val target = "text"
println(target in source) // true
println(target !in source) // false


3. kotlin 赋值运算符


a += b // 7, 同 a = a + b
a -= b // 3, 同 a = a - b
a *= b // 12, 同 a = a * b
a /= b // 3, 同 a = a / b


4. kotlin 比较运算符


println(a > b) // false,同 a.compareTo(b) > 0
println(a < b) // true,同 a.compareTo(b) < 0
println(a >= b) // false,同 a.compareTo(b) >= 0
println(a <= b) // true,同 a.compareTo(b) <= 0


5. kotlin 位运算符


// kotlin 按位与:操作数的两位同时为1,才为1
println(a.and(b)) // 0
// kotlin 按位或:操作数的两位只要一个为1,即为1
println(a.or(b)) // 7
// kotlin 按位非:操作数的每个位全取反
println(a.inv()) // -4
// kotlin 按位异或:操作数的两位相同时返回0,不同时返回1
println(a.xor(b)) // 7
// kotlin 左移 左乘
println(a.shl(2)) // 12
// kotlin 右移 右除
println(a.shr(1)) // 1
// kotlin 无符号右移
println(a.ushr(1)) // 1


6. kotlin 区间运算符


// kotlin 定义闭区间
var range = 1..3 // [1,3] 范围是 1-3,含边界
for (ele in range) {
    print(ele * 2) // 2 4 6
}

println()

val array = intArrayOf(1, 2, 3, 4)
// kotlin 定义开区间
range = 0 until array.size // [0,4) 范围是1-4,不含4,即[0,3]
for (ele in range) {
    print(array[ele]) // 1 2 3 4
}

println()

// kotlin 定义反向区间,从3到0,闭区间
val rangeInt: IntProgression = 3 downTo 0
for (ele in rangeInt) {
    print(ele) // 3 2 1 0
}
println()
// kotlin 定义反向区间步长
for (ele in rangeInt step 2) {
    print(ele) // 3 1
}


7. kotlin 重载运算符


// kotlin 重载单目运算符
var cla = OperatorClass(1, 1)
println(-cla) // 调用的是 unaryMinus() OperatorClass(a=-1, b=-1)
println(!cla) // 调用的是 not()        OperatorClass(a=-1, b=-1)

println(++cla) // 调用的是 inc() OperatorClass(a=2, b=2)
println(--cla) // 调用的是 dec() OperatorClass(a=1, b=1)

// kotlin 重载双目运算符
val cla1 = OperatorClass(1, 2)
val cla2 = OperatorClass(3, 4)

println("-----------------------------")

var operResult: OperatorClass

operResult = cla1 + cla2
println(operResult) // OperatorClass(a=4, b=6)

operResult = cla1 * cla2
println(operResult) // OperatorClass(a=3, b=8)


/**
 * @author WilliamYang
 * @date 2021/11/29 16:57
 * @description 重载运算符数据类
 */
data class OperatorClass(val a: Int, val b: Int) {

    // 单目运算 -
    operator fun unaryMinus(): OperatorClass {
        return OperatorClass(-a, -b)
    }

    // 单目运算 非 !
    operator fun not(): OperatorClass {
        return OperatorClass(-a, -b)
    }

    // 单目运算 自增
    operator fun inc(): OperatorClass {
        return OperatorClass(a + 1, b + 1)
    }

    // 单目运算 自减
    operator fun dec(): OperatorClass {
        return OperatorClass(a - 1, b - 1)
    }

    // 双目运算 相加 +
    operator fun plus(other: OperatorClass): OperatorClass {
        return OperatorClass(a + other.a, b + other.b)
    }

    // 双目运算 相乘 *
    operator fun times(other: OperatorClass): OperatorClass {
        return OperatorClass(a * other.a, b * other.b)
    }
}


附 Github 源码:TestOperator

Kotlin 入门教程:运算符 本文介绍 Kotlin 运算符,包括数学运算、布尔运算以及一些特殊运算。所有代码均可在运行,部分代码下方也会提供链接直达。专栏《零基础入门 Kotlin》持续更新中,欢迎订阅! 阅读详情

相关推荐

字节开源 DeerFlow 2.0:从 Deep Research 到 Super Agent Harness 的进化之路

GitHub Trending 冠军项目,字节跳动完全开源的超级智能体框架。支持子代理、沙箱执行、长期记忆、技能扩展,可完成从几分钟到几小时的复杂任务。本文深度解析架构设计、安装实战、技能系统,并附上独家配置指南。

qq_38610923的博客 1711

Kotlin运算符

这篇博客详细的介绍了Kotlin中的运算符以及其重载,并以具体的示例,介绍了运算符的使用。(重载的具体使用见专栏中类相关知识)

尘心平的博客 3691

PHP+MYSQL宠物主题动态网页设计源码+数据库,大学生期末大作业,PHP课程设计

PHP+MYSQL宠物主题动态网页设计源码+数据库,大学生期末大作业,PHP课程设计提示:本文采用PHP对数据库进行操作:本文就介绍了PHP实现对MySQL数据库的增删改查操作基础内容。

899

运算符——Kotlin基础

一、单目运算符 运算符 对应的方法 +a a.unaryPlus() -a a.unaryMinus() !a a.not() – – a++ a.inc() a– a.dec() 自增自减的过程 当++、–放在变量前面时,执行过程如下: 先对变量调用inc()、dec()方法,并将方法返回值赋给变量。 自加或自减表达式返回变量的新值。 当++、–...

江澎涌的博客 1010

STM32学习笔记【江科协】【4-2】OLED显示屏

可以注意到接电源的GND和VCC同时和PB6、PB7号口连接,我们可以直接不初始化这两个引脚解决,因为STM32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响,或者直接给PB6口输出低电平,PB7口输出高电平,用GPIO口直接给OLED供电,这个也是没问题的,因为OLED的功率很小这个也是可以驱动的,不过用GPIO口供电不是很规范,实际项目还是用电源供电。然后点击这里放大镜里面带d的图标,进入调试模式,这个界面里,

m0_74651303的博客 1595

基于STM32设计的智能水产养殖系统(华为云IOT)(152)

当前设计的智能水产养殖系统主控芯片采用STM32F103RCT6,可以实现对水位、水温、水混浊度和PH值等参数的监测和控制,并且支持定时投喂功能。通过连接华为云物联网平台,将传感器数据上传到服务器,并通过Qt设计的Android手机APP来获取设备上传的数据,从而实现对养殖环境的远程监测和控制。

8828

Kotlin语法基础,运算符

运算符计算机程序中最小的程序单位成为表达式,每个表达式都可以由两部分组成,即操作数和运算符。操作数可以是变量、常量、类、数组、方法等,甚至是其他表达式。而运算符则用于支出表达式中单个或者多个操作数参与运算的规则,表达式通过运算之后产生的值依赖于表达式中包含的运算符的优先级和结核性。Kotlin语言包含了Java语言中的所有运算符的特性,并结合C语言的优点,增加自定义运算符的逻辑。这些运算符之中,主要

北漂周的专栏(微信:stchou_zst) 3万+

qt医疗信息系统(HIS)

**UI 组件**: QWidget、QTextBrowser、QTableWidget、QGraphicsView 等。- **网络通信**: Qt Network (TCP/IP)- **DICOM 处理**: DCMTK 3.6.7。- **数据库**: SQLite (轻量、跨平台)**数据库文件**: `hospital.db`- **开发框架**: Qt 6 (C++)- 医疗影像 (DICOM) 查看器。**医疗影像 (DICOM) 查看器****电子病历 (EMR) 浏览器**

寒寒豆豆软件公司的博客 336

Kotlin - 运算符重载

Kotlin支持标准的算术运算表达式, 其中运算符被声明为相应类的成员。Kotlin源代码中,我们可以自定义类型的运算符实现,即运算符的重载。这些运算符有固定的表示, 和固定的优先级。Kotlin为基本类型提供了固定名称的数值函数,比如二元运算符的左值和一元运算符的参数类型。运算符的优先级运算符重载预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。运

行云间 9899

eNSP与我这24H2版本不兼容,路由器40错误。这该怎么处理(操作系统-windows)(相关搜索:虚拟机)

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 4109

《QGIS快速入门与应用基础》021:插件仓库 URL 获取与添加

详细介绍了在QGIS中添加第三方插件仓库的方法。首先强调必须从官方推荐、开源社区等可靠渠道获取插件仓库URL以确保安全性,并列出了4类可信获取渠道。文章分步骤讲解了URL添加流程,包括打开插件管理器设置面板、填写仓库信息、刷新缓存验证等操作。针对常见问题如URL格式错误、连接失败等提供了具体解决方案。最后总结指出,成功添加第三方仓库后即可直接搜索安装各类专业插件,从而扩展QGIS功能边界。全文注重实操指导,特别适合需要安装行业专用插件的QGIS用户参考。

LuckyHanMo的博客 464

kotlin 三元运算符_Kotlin运算符

考虑两种类型X和Y ,以及定义为的函数f : class X class Y val f = { _ : X -> Y () } (1) 1个 使用Kotlin 1.3,可以命名未使用的参数_ ,以明确告诉它被忽略 以下代码段声明了一个类似于f的函数。 然后,使用invoke()函数使用类型为X的参数执行该命令: fun f ( x : X ) = Y (...

dlz00001的博客 3526

点云处理指南介绍

指南目录,Open3D与PCL内容介绍

NNNNNathan的博客 1万+

Kotlin学习之运算符

kotlin和java运算符对比

米枔的博客 691

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Kotlin重载运算符

什么是运算符重载? 简单来说,就是Kotlin通过调用自己代码中定义特定的函数名的函数(成员函数或者扩展函数),并且用operator修饰符标记,来实现特定的语言结构,例如如果你在一个类上面定义了一个特定函数命名plus的函数,那么按照Kotlin的约定,可用在这个类的实例上使用+运算符,下面是代码。 用于重载运算符的所有函数都必须使用operator关键字标记。 // 一个简单的数据类 da...

SHELTER_7的博客 318

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Kotlin运算符和表达式

kotlin语言提供了一系列功能丰富的运算符,这些运算符包括所有的算术运算符,还包括比较运算符、逻辑运算符、区间运算符和位运算符。kotlin基本支持java的全部运算符(可能在写法上有不同),kotlin不支持三目运算符(因为kotlin可用if表达式来代替三目运算符) kotlin的很多运算符其实等价于operator修饰的、特定函数名的函数。同时也可以作用于自定义的类,只要提供operato...

Stc_LOokIN的博客 1361

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Kotlin 位运算符

Kotlin中的位运算通过infix函数实现,包括and(位与)、or(位或)、inv(位非)、xor(位异或)、shl(左移)、shr(右移)和ushr(无符号右移),其功能与Java中的相应运算符一致。需要注意的是,Kotlin的位运算仅支持Int和Long两种数据类型。实际使用时可通过类似val x:Int = (y.toInt() and 0xff)的语法实现位操作。

赵星海 7022

Kotlin运算符重载及其他约定

重载算数运算符 下面以一个栗子开始,我们先定义一个Point data class Point(val x : Int, val y : Int) 下面给Point定义一些算术运算符.(在java中算术运算符只能用于基本数据类型,但是在kotlin中可以在任何类型下面使用) 定义一个plus运算符 data class Point(val x: Int, val y : Int){ ope...

weixin_34049948的博客 217

Kotlin - 运算符

【一元运算符】 运算符 名称 举例 结果 ++ 自增 a = 2 b = ++a //a先自增,再把值赋给b a = 3 b = 3 a = 2 b = a ++ //把a赋值给b,a再自增 a = 3 b = 2 - - 自减 a = 2 b = - - a a = 1 ...

HugMua的博客 953

Kotlin运算符重载总结

运算符的重载是一个十分方便的特性,它让代码看起来更加的直观,写起来也更加的方便。在学C++的时候就十分喜欢这一语言特性。然而Java却对这一点没有任何的支持。现在同样作为JVM语言的Kotlin加入了运算符重载这一语言特性。接下来让我们看看,在Kotlin中究竟有哪些运算符可以重载呢?一元运算符

feint123的博客 1292

Kotlin 运算符重载

Kotlin 运算符函数及其重载

Chanwing Chow的博客 720

kotlin 基本运算符和运算符重载

关键字 operater 1>任何类可以定义或者重载父类的基本运算符 2>通过运算符的函数名重载 3>对于参数个数的要求,对参数,返回值类型不作要求 运算符重载不能太随便 这点是java没有的,java的小伙伴羡慕嫉妒恨吧 package com.testOperaters /** * Created by jingwen on 19/4/14. * Kotlin 运...

android大牛MrJing 活动中心 554

Kotlin基础学习(十八)—— Kotlin 运算符重载与约定

Kotlin

123 1639

Kotlin语法基础之运算符

原文链接:点击打开链接 摘要: 运算符 计算机程序中最小的程序单位成为表达式,每个表达式都可以由两部分组成,即操作数和运算符。操作数可以是变量、常量、类、数组、方法等,甚至是其他表达式。而运算符则用于支出表达式中单个或者多个操作数参与运算的规则,表达式通过运算之后产生的值依赖于表达式中包含的运算符的优先级和结核性。 运算符 计算机程序中最小的程序单位成为表达式,每个表达式

qq_40954115的博客 1734

Kotlin中三元运算符

Java中三元运算符 int a = 10; int b = 11; int c = a > b ? a : b; kotlin中 val a = 10 val b = 11 val c = if (a > b) a else b

NewActivity的博客 2万+
上一篇: Swift 高级特性
下一篇: Kotlin 循环、流程控制:if-else、when、for-in
Lucky_William
博客等级 码龄11年 161粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值