Kotlin(三)、控制结构

本文深入探讨Kotlin中的控制流结构,包括枚举和when语句的高级应用,以及for循环的独特实现方式,如区间和数列的概念。通过实例讲解如何处理枚举类型,以及在不同场景下使用when和for进行迭代和条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、枚举和when

when可以认为是加强版的switch

枚举类
/**
 * 简单枚举
 */
enum class Color { RED, ORANGE, YELLOW }

/**
 * 还可以枚举类声明属性和方法
 */
enum class Color(val r: Int, val g: Int, val b: Int) {
    RED(255, 0, 0), ORANGE(255, 165, 0), YELLOW(255, 255, 0);//这里是Kotlin中唯一必须使用分号的地方!!!

    fun rgb() = (r * 256 + g) * 256 + b
}
使用when处理枚举
    /**
     * 处理枚举
     */
    fun getWord(color: Color) = when (color) {
        Color.RED, Color.Orange -> "warm"
        Color.YELLOW -> "cold"
        else -> throw Exception("Dirty color")
    }

    /**
     * 处理任意对象
     */
    fun mix(c1: Color, c2: Color) = when (setOf(c1, c2)) {
        setOf(Color.RED, Color.YELLOW) -> Color.ORANGE
        setOf(Color.YELLOW, Color.BLUE) -> Color.GREEN
        else -> throw Exception("Dirty color")
    }

    /**
     * 不带参数的when
     * 不会创建额外对象,但代码不优雅
     */
    fun mixOpt(c1: Color, c2: Color) = when {
        (c1 == Color.RED && c2 == Color.YELLOW) ||
                (c1 == Color.YELLOW && c2 == Color.RED) -> Color.ORANGE
        (c1 == Color.YELLOW && c2 == Color.BLUE) ||
                (c1 == Color.BLUE && c2 == Color.YELLOW) -> Color.GREEN
        else -> throw Exception("Dirty color")
    }

一、while和for

Kotlin中并没有对while做加强,所以只需讨论下for

区间和数列

Kotlin中没有常规Java的for循环,作为替代,Kotlin使用了***区间***的概念

区间本质上就是两个值之间的间隔,这两个值通常是数字:一个起始值,一个结束值。使用…运算符来表示区间:

val oneToTen = 1..10//是闭区间

如果能迭代区间中的所有值,这样的区间叫做***数列***
这里还有很多用法,如downTo、until等等,会在后面函数中介绍

关于in和迭代map
	 	/**
	     * 使用in迭代区间
	     */
        val binaryReps = TreeMap<Char, String>()
        for (c in 'A'..'F') {//创建字符区间
            val binary = Integer.toBinaryString(c.toInt())  //将 ASCII 码转化成二进制
            binaryReps[c] = binary //根据 key 为c 把 binary 存到 map 中
        }

	 	/**
	     * 使用in迭代区间
	     */
        val list = arrayListOf("10", "11", "1001")
        for ((index, element) in list.withIndex()) {//不用存下标
            println("$index : $element")
        }

	    /**
	     * 使用in检查区间成员
	     */
	    fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'
	    fun isNotDigit(c: Char) = c !in '0'..'9'

这一篇仅仅是介绍这些控制,具体细节会在后面写

内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qi T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值