Kotlin之表达式

【Kotlin】Kotlin的高阶函数与Lambda表达式 前言 Kotlin的高阶函数与Lambda表达式是Kotlin的特色,使用频率非常高。熟悉它的用法与本质对于简化代码、提升开发效率非常有帮助,也易于阅读kotlin的框架源码。 这两个概念并不是一个东西,但是又有非常紧密的关联。这篇文章带你弄懂什么是高阶函数,以及Lambda表达式的本质和使用。 一、什么是高阶函数 高阶函数就是将函数用作参数或返回值的函数。 函数类型 Kotlin 使用类似 (Int) -> String 的一系列函数类型来处理函数的声明,例如onClick: val onClick 阅读详情
  1. if语句

      val max = if (a > a1) a else a1
    

    例子:

     fun test() {
        var a: Int = 3
        var a1: Int = 4
        val max = if (a > a1) a else a1
        Log.e("max", "max " + max)
     }
    

    输出结果:

     max: max 4
    
  2. 使用区间(in)

       fun test() {
           val a = 99
           if (a in 1..898) {
               Log.e("max", "a 在区间内 ")
           }
       }
    

    结果:

      max: a 在区间内
    
  3. When 表达式(类似java的 switch 操作符)

     fun test() {
            when (5) {
                10 -> Log.e("when", "== 10")
                20 -> Log.e("when", "== 20")
                //注意这个块
                else -> {
                    Log.e("when", " 不是 10 ,不是 20")
                }
            }
        }
    

    else类似 java中switch 的 default
    输出结果:

     when:  不是 10 ,不是 20
    
  4. for语句

    1. 递增:关键词 until

      fun test() {
        // 从10开始,循环15次,且步长为1的递增
        for (i in 10 until 25) {
            Log.e("when", "i => $i \t")
        }
      }
      

      输出结果:

        when: i => 10 	
        when: i => 11 	
        when: i => 12 	
        when: i => 13 	
        when: i => 14 	
        when: i => 15 	
        when: i => 16 	
        when: i => 17 	
        when: i => 18 	
        when: i => 19 	
        when: i => 20 	
        when: i => 21 	
        when: i => 22 	
        when: i => 23 	
        when: i => 24 
      

      2.递减:关键词 downTo

        fun test() {
        // 从25开始,循环16次,且步长为1的递减
        for (i in 25 downTo 10) {
            Log.e("when", "i => $i \t")
         }
      } 
      

      输出结果:

         when: i => 25 	
         when: i => 24 	
         when: i => 23 	
         when: i => 22 	
         when: i => 21 	
         when: i => 20	
         when: i => 19 	
         when: i => 18 	
         when: i => 17 	
         when: i => 16 	
         when: i => 15 
         when: i => 14 
         when: i => 13 
         when: i => 12 
         when: i => 11 
         when: i => 10 	 
      
      1. .. 循环
          fun test() {
            // 从15开始,循环10次,且步长为1的递减
           for (i in 15..25) {
            Log.e("when", "i => $i \t")
           }
         }
      

      输出结果:

        when: i => 16 	
        when: i => 17 	
        when: i => 18 	
        when: i => 19 	
        when: i => 20 	
        when: i => 21 	
        when: i => 22 	
        when: i => 23 	
        when: i => 24
      
      1. 设置步长 step
          fun test() {
      	   for (i in 15..25 step 4) {
                Log.e("when", "i => $i \t")
       	  }
           }
      

      输出结果:

        when: i => 15 	
        when: i => 19 	
        when: i => 23 
      
      1. indices属性遍历数组
       fun test() {
         var arrayLists = arrayOf("15", "68", "79", "09", "6")
         for (i in arrayLists.indices) {
             Log.e("arrayLists", "arrayLists[$i] => " + arrayLists[i])
         }
      }
      

      输出结果:

       arrayLists[0] => 15
       arrayLists[1] => 68
       arrayLists[2] => 79
       arrayLists[3] => 09
       arrayLists[4] => 6
      
      1. withIndex()方法遍历
          fun test() {
             var arrayLists = arrayOf("15", "68", "79", "09", "6")
             for ((index,value) in arrayLists.withIndex()) {
                 Log.e("arrayLists", "index => $index \t value => $value")
             }
          }
      

      输出结果:

       index => 0 	 value => 15
       index => 1 	 value => 68
       index => 2 	 value => 79
       index => 3 	 value => 09
       index => 4 	 value => 6
      
  5. while语句(同Java中的while循环一样)

    while(exp){ 其中exp为表达式
    ...
    }
    
  6. 返回和跳转

    在Kotlin中, 有三种跳转表达式的结构化:
    return: 默认从直接包围它的函数或者匿名函数返回。
    break: 终止直接包围它的循环。
    continue: 继续下一次直接包围它的循环。

缠中说禅交易指南 战胜市场,其实就是战胜自己的贪婪、恐惧、愚蠢,缠中说禅技术分析理论只是把市场拔光给各位看,而拔光一个人并不意味着就等于征服一个人,对于市场,其道理是一样的。不干,不可能征服市场。对于市场来说,干就是一切。技术分析的最终意义不是去预测市场要干什么,而是分析市场正在干什么,是一种当下的直观。在市场上所有的错误都是离开了这当下的直观,用想象、用情绪来代替。 市场是有规律的,但市场的规律并不是显而易见的,是需要严格的分析才能得到。更重要的是,市场的规律是一种动态的,在不同级别合力作用下显示出来的规律,企图用些单纯的 阅读详情

相关推荐

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

Kotlin基础(三):表达式

前言 本文主要讲解常量和变量、分支表达式、运算符与中缀表达式、Lambda表达式、案例:为Person实现equals和hashCode、案例:为String实现四则运算 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 (一)常量和变量 (1)变量 java: int a = 2; a = 3; final int b = 3; // 只读变量 kotlin: var a = 2 a = 3 val b = 3 // 只读变量 (2)常量 java: static

分享计算机基础,android,C/C++,音视频等内容 796

Backtrader 文档学习- 整体架构功能分析理解

backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(Broker)、订单(Order)、交易(Trade)和日志记录(Writers)整合起来,实现回测以及交易,并返回结果和图表。

六月闻君 6328

Kotlin学习(三):表达式

文章目录一、常量与变量(var、val、const的使用与区别)1.var、val、const的使用与区别2.编译期和运行时常量二、分支表达式1. if..else2.when表达式 类似于 java的switch3.try..catch三、kotlin运算符重载与中辍表达式1.kotlin运算符重载2.kotlin中辍表达式 infix四、Lambda表达式1.kotlin匿名函数2.匿名函数的类型3.Lambda表达式的定义,java与kotlin对比总结 一、常量与变量(var、val、const的使

Pumpkin's Blog 326

Win11下高效管理JDK1.8与JDK17双环境的实战指南

本文提供了一份在Windows 11系统上高效管理JDK 1.8与JDK 17双环境的实战指南。文章详细讲解了如何实现双版本切换,包括如何干净安装两个JDK、通过巧妙配置环境变量实现命令行一键切换,以及在不同IDE和构建工具中为项目独立配置JDK版本,旨在帮助Java开发者彻底解决版本冲突问题,提升开发效率。

ipfs8storage的博客 545

python爬取淘宝数据

python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在

qq_36333776的博客 5799

kotlin基础

kotlin 中的高阶函数 高阶函数即指:将函数用作一个函数的参数或者返回值的函数。 //block1 无参数无返回值函数类型 val block1: () -> Unit // block2 无参数返回值为 String 的函数类型 val block2: () -> String // block2 有一个 Int 类型的参数无返回值的函数类型 val block3: (Int) -> Unit // block4 有2个参数返回值

Icarus_的学习笔记 3294

迪文屏【0】——从零搭建工程:图片显示、文本变量配置与串口数据交互实战

本文以迪文屏T5L系列为例,详细介绍了从零搭建HMI工程的完整流程。内容涵盖硬件软件准备、DGUS工程创建、背景图片显示、文本变量配置,并重点演示了如何通过串口指令实时修改屏幕数据变量,实现动态交互。旨在帮助开发者快速掌握迪文屏开发的核心步骤与数据交互方法。

alpha的博客 349

Kotlin 之表达式详解

文章目录常量和变量分支表达式运算符中缀表达式Lambad 表达式案例1案例2总结 常量和变量 fun main() { //变量 var a: Int = 2 a = 3 //只读变量,在局部中,和 final 相同 val b = 2 //如果是全局 val x = X() println(x.b) //每次的值都不一样 ...

345丶 1550

ESP32-C3入门教程 环境篇③——VS Code IDE快速入门

文章目录一、安装Visual Studio Code二、安装扩展三、配置ESP-IDF 插件四、创建工程五、配置工程5.1 选择目标芯片5.2 项目配置六、编译工程七、固件分析七、固件下载八、串口日志九、单步调试 一、安装Visual Studio Code 下载并安装Visual Studio Code 二、安装扩展 左侧扩展 搜索espressif 点击安装 三、配置ESP-IDF 插件 按下F1按键 输入configure esp-idf extension EXPRESS,如果你

8305

深度解析电力负荷预测:基于深度学习的完整实战指南

电力负荷预测是智能电网运行中的核心技术之一,准确的负荷预测对于电网的稳定运行、电力市场交易以及能源调度具有重要意义。本文将详细介绍电力负荷预测的完整解决方案,从数据预处理、特征工程到模型构建与评估,提供完整的可执行代码。我们将使用LSTM(长短期记忆网络)和Transformer两种主流深度学习模型进行实现,并通过实际数据集验证模型效果。电力负荷预测是指根据历史负荷数据、气象因素、时间特征等多维信息,预测未来某一时段的电力需求。超短期负荷预测:未来几分钟到几小时短期负荷预测:未来1天到1周中期负荷预测。

YOLO 111

Kotlin基础之 if 表达式

Kotlin中if是一个表达式,而不是一个语句。 表达式可以参与运行,可以有返回值,而语句不行,这就是区别 例如我们在java中经常写这样的代码 int a = 10; int b = 20; int c=b; //不带else的写法 if (a>b)c=a; //带else的写法 if (a>b){ c=a; }else { c=b; } //三元表达式写法 c= a>b?a...

guoxinyu1207的博客 2668

【即插即用模块】注意力篇 | TGRS 2025 | CDFIM:通道+空间多尺度注意力,双模态特征融合增强,性能翻倍!

C2DFF-Net提出了一种轻量级跨模态特征融合模块CDFIM,通过模态差异感知和多尺度深度滤波增强双模态互补信息。该模块采用通道-空间注意力协同机制,以极低计算成本(仅增加0.26M参数)提升多模态目标检测性能,在三个遥感数据集上平均提升mAP约1.7%。适用于无人机等边缘设备的实时检测任务,为跨模态融合提供高效解决方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 626

Kotlin lambda表达式

Kotlin lambda表达式 这篇文章一起来聊下 Kotlin 中的 lambda 表达式。lambda 表达式大家应该都不陌生,这是在 Java8 中引入的一个很重要的特性。将开发者从原来繁琐的语法中解放出来,可是很遗憾的是只有Java8 及以上版本才能使用。而 Kotlin 则弥补了这一问题,Kotlin 中的 lambda 表达式与 Java 混合编程可以支持 Java8以下的版本。那我们带着以下几个问题一起来看下 Kotlin 中 lambda 表达式。 1. 为什么要使用Kotlin的la

AirField的博客 904

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Kotlin中的Lambda表达式

对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。!文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!868504)][外链图片转存中…(img-DXs8TkCX-1715575868506)]

2401_84414763的博客 1023

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Kotlin基础之 When表达式

Kotlin中的When表达式就是java中的switch case语句 我们在java中这样写switch case语句 int day =1; switch (day){ case 1: Log.d(TAG, “test: 周一吃包子”); break; case 2: Log.d(TAG, “test: 周二吃肉夹馍”); break; case 3: Log.d(TAG, “test:...

guoxinyu1207的博客 1003

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

细说 Kotlin 的 Lambda 表达式

我们总是会用到 Lambda 表达式,它在 Kotlin 当中的地位可以说是举足轻重的。那么我们今天就来详细聊一聊 Lambda。 1. 什么是 Lambda 表达式 Lambda 表达式,其实就是匿名函数。而函数其实就是功能(function),匿名函数,就是匿名的功能代码了。在 Kotlin 当中,函数也是作为类型的一种出现的,尽管在当前的版本中,函数类型的灵活性还不如 Python 这样...

mlsnatalie的博客 475

Kotlin学习—lambda表达式

在Kotlin当中的Lambda表达式出现比较多,但是由于Lambda表达式的形式和Kotlin当中的简化导致看不懂的情况出现,学习本文来解决这个问题!

Nimrod__的博客 1930

Kotlin 和 Java 中的 Lambda 表达式的区别

通过阅读编译后 class 文件,分析 Kotlin 和 Java 中 Lambda 表达式的实现方式有何区别。

哈罗德Android笔记 1294

Kotlin之lambda表达式

kotlin之lambda笔记

七夜聖君的博客 919

【Kotlin】Lambda表达式

Lambda 表达式中,不能直接使用 return 语句返回,需要结合标签一起使用,否则会编译报错(内联函数除外,详见 →。尾随 Lambda 表达式中,可以使用外层函数的名字作为 return 的标签名,也可以在 {} 前面自定义标签名。说明:当外层函数的最后一个参数不是函数类型,前面的某个参数是函数类型时,必须将 {} 写到 () 里面。说明:当外层函数的最后一个参数是函数类型时,可以将 {} 提到 () 外面,该语法称为“当只有一个参数时,可以使用 it 简化 Lambda 表达式,如下。

little_fat_sheep 1019

Kotlin-表达式

Kotlin-表达式whenifforwhile 下面写一下各种表达式的写法。 when Kotlin的when表达式支持String类型,Int类型就不写了,太简单了 private fun whenMethod(param: String): String { return when (param) { "喝酒了" -> "不能开车...

DK_long_teng的博客 378

kotlin表达式range when

表达式

dodod2012的专栏 458
上一篇: Kotlin 基本数据类型详解二
下一篇: Kotlin 类、对象和继承 接口
jhonjson
博客等级 码龄11年 220粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值