当前位置: 首页 > news >正文

Kotlin 遍历

在 Kotlin 中,遍历(迭代)是操作集合、数组、范围(Range)等数据结构的常见需求。Kotlin 提供了多种遍历方式,语法简洁且功能强大。以下是不同场景下的遍历方法总结,附代码示例:

一、遍历集合(List/Set)

Kotlin 的 List 和 Set 是最常用的集合类型,遍历方式包括传统 for 循环、forEach 高阶函数、forEachIndexed(带索引)等。

1. 基础 for 循环(直接遍历元素)

Kotlin 的 for 循环可直接遍历集合的元素(无需通过索引),语法简洁:

val fruits = listOf("Apple", "Banana", "Cherry", "Date")// 遍历所有元素
for (fruit in fruits) {println(fruit) // 输出:Apple, Banana, Cherry, Date
}
2. forEach 高阶函数(函数式风格)

通过集合的扩展函数 forEach,可以更函数式地遍历元素。适用于需要对每个元素执行操作的场景:

fruits.forEach { fruit ->println(fruit) // 输出同上
}// 简化写法(使用 it 代替参数名)
fruits.forEach { println(it) }
3. forEachIndexed(带索引遍历)

若需要同时获取元素的索引,可以使用 forEachIndexed

fruits.forEachIndexed { index, fruit ->println("索引 $index: $fruit") // 输出:索引 0: Apple,索引 1: Banana,...
}
4. 通过索引遍历(传统方式)

通过 indices 获取集合的索引范围(0..size-1),再通过索引访问元素:

for (index in fruits.indices) {val fruit = fruits[index]println("索引 $index: $fruit") // 输出同上
}

二、遍历 Map(键值对)

Map 存储键值对(Key-Value),遍历需同时处理键和值。Kotlin 提供了多种遍历方式:

1. 遍历 entries(键值对)

通过 map.entries 获取所有键值对(类型为 Set<Map.Entry<K, V>>),直接遍历每个 Entry

val userMap = mapOf("name" to "Alice","age" to 25,"city" to "Beijing"
)// 遍历键值对(Entry)
for ((key, value) in userMap) {println("$key: $value") // 输出:name: Alice,age: 25,city: Beijing
}// 或使用 forEach
userMap.forEach { (key, value) ->println("$key: $value")
}
2. 单独遍历键(Keys)或值(Values)

通过 map.keys 遍历所有键,或通过 map.values 遍历所有值:

// 遍历所有键
for (key in userMap.keys) {println("Key: $key") // 输出:name,age,city
}// 遍历所有值
userMap.values.forEach { value ->println("Value: $value") // 输出:Alice,25,Beijing
}

三、遍历数组(Array)

Kotlin 的数组(如 IntArrayStringArray)与集合的遍历方式类似,但需注意基本类型数组(如 IntArray)的优化。

1. 对象数组(Array<T>

普通对象数组的遍历方式与集合完全一致:

val stringArray = arrayOf("A", "B", "C")// for 循环
for (str in stringArray) {println(str)
}// forEach
stringArray.forEach { println(it) }
2. 基本类型数组(如 IntArray

Kotlin 对基本类型数组(IntArrayBooleanArray 等)做了优化,避免装箱开销。遍历方式与对象数组类似:

val intArray = intArrayOf(1, 2, 3, 4)// for 循环
for (num in intArray) {println(num) // 输出:1, 2, 3, 4
}// forEach(优化版,无装箱)
intArray.forEach { println(it) }// 带索引遍历
intArray.forEachIndexed { index, num ->println("索引 $index: $num")
}

四、遍历范围(Range)

Kotlin 的范围(如 1..10 表示闭区间 [1,10])支持高效遍历,常用于循环计数。

1. 整数范围(IntRange

通过 .. 操作符创建范围,配合 for 循环遍历:

// 遍历 1 到 5(包含 5)
for (i in 1..5) {println(i) // 输出:1, 2, 3, 4, 5
}// 倒序遍历(使用 downTo)
for (i in 5 downTo 1) {println(i) // 输出:5, 4, 3, 2, 1
}// 带步长遍历(使用 step)
for (i in 1..5 step 2) {println(i) // 输出:1, 3, 5
}
2. 字符范围(CharRange

字符也可以组成范围,按 ASCII 顺序遍历:

// 遍历 A 到 C
for (c in 'A'..'C') {println(c) // 输出:A, B, C
}

五、遍历迭代器(Iterator)

若需要手动控制遍历过程(如跳过某些元素),可以通过 iterator() 获取迭代器,然后使用 hasNext() 和 next() 遍历:

val numbers = listOf(10, 20, 30, 40)
val iterator = numbers.iterator()while (iterator.hasNext()) {val num = iterator.next()println(num) // 输出:10, 20, 30, 40
}

六、注意事项

  1. break 和 continue 的限制

    • 在传统 for 循环中可以使用 break(终止循环)和 continue(跳过当前迭代);
    • 在 forEach 高阶函数中不支持 break 或 continue(因为本质是函数调用)。若需要提前终止,需改用 for 循环或使用 takeWhile 等操作符。

    示例:提前终止遍历

    // 使用 for 循环 + break(推荐)
    for (fruit in fruits) {if (fruit == "Cherry") break // 遇到 "Cherry" 时终止循环println(fruit) // 输出:Apple, Banana
    }// 使用 takeWhile(函数式风格,返回满足条件的子列表)
    fruits.takeWhile { it != "Cherry" }.forEach { println(it) }
    
  2. 不可变集合 vs 可变集合
    若遍历的是可变集合(如 MutableList),在遍历过程中修改集合(添加 / 删除元素)可能导致 ConcurrentModificationException(并发修改异常)。需使用 listIterator 或复制集合后遍历。

总结:按场景选择遍历方式

场景推荐方法示例代码
简单遍历集合元素for 循环 或 forEachfor (item in list) 或 list.forEach { ... }
需要索引和元素forEachIndexedlist.forEachIndexed { index, item -> ... }
遍历 Map 键值对for ((key, value) in map)for ((k, v) in map) { ... }
遍历范围(如 1 到 10)for (i in 1..10)for (i in start..end) { ... }
需要提前终止或跳过元素传统 for 循环 + break/continuefor (item in list) { if (...) break }

通过灵活选择这些遍历方式,可以高效处理 Kotlin 中各种数据结构的遍历需求。

相关文章:

Kotlin 遍历

在 Kotlin 中&#xff0c;遍历&#xff08;迭代&#xff09;是操作集合、数组、范围&#xff08;Range&#xff09;等数据结构的常见需求。Kotlin 提供了多种遍历方式&#xff0c;语法简洁且功能强大。以下是不同场景下的遍历方法总结&#xff0c;附代码示例&#xff1a; 一、…...

Ubuntu Linux系统配置账号无密码sudo

在Linux系统中&#xff0c;配置无密码sudo可以通过修改sudoers文件来实现。以下是具体的配置步骤 一、编辑sudoers文件 输入sudo visudo命令来编辑sudo的配置文件。visudo是一个专门用于编辑sudoers文件的命令&#xff0c;它会在保存前检查语法错误&#xff0c;从而防止可能的…...

C# NX二次开发:判断两个体是否干涉和获取系统日志的UFUN函数

大家好&#xff0c;今天要讲关于如何判断两个体是否干涉和获取系统日志的UFUN函数。 &#xff08;1&#xff09;UF_MODL_check_interference&#xff1a;这个函数的定义为根据单个目标体检查每个指定的工具体是否有干扰。 Defined in: uf_modl.h Overview Checks each sp…...

若依项目图片显示问题

图片显示异常问题 路径配置问题&#xff1a;前端图片路径配置错误&#xff0c;最初使用相对路径且未从根目录开始解析&#xff0c;导致浏览器根据当前页面 URL 解析路径出错。例如在用户信息展示页面&#xff0c;若当前页面 URL 为http://localhost:8088/user/profile&#xff…...

线索二叉树

一 概念 线索二叉树&#xff08;Threaded Binary Tree&#xff09;是一种对二叉树的优化结构&#xff0c;主要解决传统二叉树遍历时需要借助栈或递归&#xff08;额外空间开销&#xff09;的问题。通过利用节点中的空指针&#xff08;nullptr&#xff09;存储遍历过程中的前驱…...

Git查看某个commit的改动

在Git中查看特定commit的改动有多种方法&#xff0c;下面是几种常用的命令行方式&#xff1a; 1. 使用 git show 命令 这是最常用的方法&#xff0c;直接显示某个commit的详细信息和改动&#xff1a; git show <commit-hash> 例如&#xff1a; git show abc1234 也可…...

es 里的Filesystem Cache 理解

文章目录 背景问题1&#xff0c;Filesystem Cache 里放的是啥问题2&#xff0c;哪些查询它们会受益于文件系统缓存 问题3 查询分析 背景 对于es 优化来说常常看到会有一条结论给&#xff0c;给 JVM Heap 最多不超过物理内存的 50%&#xff0c;且不要超过 31GB&#xff08;避免…...

2025年3月电子学会等级考试五级题——4、收费站在哪里

文章目录 题目代码公式小结 题目 4、收费站在哪里 在一条高速公路上&#xff0c;如果已知 n 座收费站的位置 x1,x2,… ,xn&#xff08;不妨假设 0x1 ≤ x2 ≤ … ≤ xn&#xff09;&#xff0c;就很容易算出一共有 n(n-1)/2 个距离的值。而比较困难的问题是&#xff0c;在收集…...

深入探索 JavaScript 中的模块对象

引言 在现代 JavaScript 开发中&#xff0c;模块化编程是一项至关重要的技术。它允许开发者将代码拆分成多个独立的模块&#xff0c;每个模块专注于单一功能&#xff0c;从而提高代码的可维护性、可测试性和复用性。而模块对象则是模块化编程中的核心概念之一&#xff0c;它为…...

R1-Searcher:用强化学习解锁大语言模型检索新能力!

R1-Searcher&#xff1a;用强化学习解锁大语言模型检索新能力&#xff01; 大语言模型&#xff08;LLMs&#xff09;发展迅猛&#xff0c;却常因依赖内部知识而在复杂问题上“栽跟头”。今天解读的论文提出R1-Searcher框架&#xff0c;通过强化学习提升LLMs检索能力。它表现超…...

LangChain框架-PromptTemplate 详解

摘要 本文聚焦于 LangChain 框架中PromptTemplate提示词模板模块的深度解析,主要参考langchain_core.prompts源码模块与官方文档。系统梳理 LangChain 对提示词模板的封装逻辑与设计思路,旨在帮助读者构建全面、深入的知识体系,为高效运用LangChain 框架的提示词模板开发应用…...

【Java ee 初阶】文件IO和操作(下)

书接上文 文本操作的方法 String[] list() 返回 File 对象代表的目录下的所有文件名 File[] listFiles() 返回 File 对象代表的目录下的所有文件&#xff0c;以 File 对象表示 此处是针对File对象打印得到的效果&#xff08;调用了File的toString&#xff09; boolean …...

Android7 Input(六)InputChannel

概述: 本文讲述Android Input输入框架中 InputChannel的功能。从前面的讲述&#xff0c;我们知道input系统服务最终将输入事件写入了InputChannel&#xff0c;而input属于system_server进程&#xff0c;App属于另外一个进程&#xff0c;当Input系统服务想要把事件传递给App进行…...

【Java ee初阶】初始网络

一、IP地址 概念 IP地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址。简单说&#xff0c;IP地址用于定位主机的网络地址。 就像我们发送快递一样&#xff0c;需要知道对方的收货地址&#xff0c;快递员才能将包裹送到目的地。 格式 IP…...

LabVIEW 2019 与 NI VISA 20.0 安装及报错处理

在使用 Windows 11 操作系统的电脑上&#xff0c;同时安装了 LabVIEW 2019 32 位和 64 位版本的软件。此前安装的 NI VISA 2024 Q1 版&#xff0c;该版本与 LabVIEW 2019 32 位和 64 位不兼容&#xff0c;之后重新安装了 NI VISA 20.0。从说明书来看&#xff0c;NI VISA 20.0 …...

http协议理解

文章目录 http协议理解基本概念HTTP版本演变版本编年史版本对比未来趋势 HTTP请求/响应结构请求报文响应报文HTTP方法分类对比方法选择原则必须遵守的约束 常见状态码HTTP头部字段HTTPSHTTPS 核心功能说明HTTPS 如何工作&#xff1f; HTTP特点补充知识点启用HTTP/2Nginx 中配置…...

typecho中的Widget设计文档

组成系统的最基本元素 什么是Widget Widget是组成Typecho的最基本元素&#xff0c;除了已经抽象出来的类库外&#xff0c;其它几乎所有的功能都会通过Widget来完成。在实践中我们发现&#xff0c;在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的&#xff0c…...

使用ESPHome烧录固件到ESP32-C3并接入HomeAssistant

文章目录 一、安装ESPHome二、配置ESP32-C3控制灯1.主配置文件esp32c3-luat.yaml2.基础通用配置base.yaml3.密码文件secret.yaml4.围栏灯four_light.yaml5.彩灯rgb_light.yaml6.左右柱灯left_right_light.yaml 三、安装固件四、HomeAssistant配置ESPHome1.直接访问2.配置ESPHom…...

基于STM32、HAL库的CH340N USB转UART收发器 驱动程序设计

一、简介: CH340N是南京沁恒电子生产的一款USB转串口芯片,具有以下特点: 支持USB 2.0全速(12Mbps) 内置时钟,无需外部晶振 支持5V和3.3V电源电压 提供常用的MODEM联络信号 内置上电复位电路 支持Windows/Linux/Mac OSX等多平台驱动 体积小,SOP-8封装 二、硬件接口: CH…...

Spring Boot Controller 如何处理HTTP请求体

Spring Boot (通过Spring MVC) 提供了强大的机制来处理不同 Content-Type​ 的HTTP请求体。这主要依赖于 HttpMessageConverter​ 接口的各种实现&#xff0c;它们能够自动将请求体内容转换成Java方法参数。 一、核心机制&#xff1a;HttpMessageConverter​ Spring MVC会根据…...

【deepseek教学应用】001:deepseek如何撰写教案并自动实现word排版

本文讲述利用deepseek如何撰写教案并自动实现word高效完美排版。 文章目录 一、访问deepseek官网二、输入教案关键词三、格式转换四、word进一步排版 一、访问deepseek官网 官网&#xff1a;https://www.deepseek.com/ 进入主页后&#xff0c;点击【开始对话】&#xff0c;如…...

【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案

在使用 Spring Boot 构建多模块项目&#xff0c;集成 MyBatis-Plus 时&#xff0c;很多开发者会遇到类似如下启动报错&#xff1a; Error creating bean with name mapperScannerConfigurer ... Caused by: java.lang.IllegalArgumentException: Property basePackage is requ…...

vue 中如何使用region?

vue 中如何使用region&#xff1f; 在 Vue 文件中&#xff0c;你可以使用 //#region 和 //#endregion 注释来创建可折叠的代码区块&#xff08;类似于 C# 的 region&#xff09;。这可以显著提高大型 Vue 组件的可读性。 1. 基本用法 在 <script> 部分使用 <script&…...

Spring Boot 启动原理的核心机制

一、核心启动流程概览 Spring Boot 的启动流程可概括为 ​7 个关键阶段​&#xff1a; 1. 加载启动类 (Main Class) 2. 初始化 SpringApplication 实例 3. 加载配置 & 准备环境 (Environment) 4. 创建 ApplicationContext&#xff08;容器&#xff09; 5. 刷新容器&#…...

【每天学习一点点】使用Python的pathlib模块分割文件路径

使用Python的pathlib模块分割文件路径 pathlib模块&#xff08;Python 3.4&#xff09;提供了面向对象的文件系统路径操作方式&#xff0c;比传统的os.path更加直观和易用。以下是使用pathlib分割文件路径的几种方法&#xff1a; 基本路径分割 from pathlib import Path# 创…...

Qt/C++面试【速通笔记八】—Qt的事件处理机制

在Qt中&#xff0c;事件处理机制是应用程序与用户或系统交互的核心。通过事件处理&#xff0c;Qt能够响应用户的输入、窗口的变化、定时器的触发等各种情况。 1. 事件循环&#xff08;Event Loop&#xff09; 在Qt应用程序中&#xff0c;事件循环是事件处理机制的基础。事件循…...

uniapp自定义步骤条(可二开进行调试)

前言 有一个业务需求是需要一个步骤条&#xff0c;但是发现开源的都不太合适&#xff0c;所以就自己写了一个。 开始 test.vue <template><view class"authenticateRecordDetails_container"><!-- 进度 --><view class"authenticateSte…...

uniapp|实现多终端聊天对话组件、表情选择、消息发送

基于UniApp框架,实现跨平台多终端适配的聊天对话组件开发、表情选择交互设计及消息发送,支持文本与表情混合渲染。 目录 聊天界面静态组件实现消息列表布局消息气泡双向布局辅助元素定位与样式静态数据模拟与扩展性设计表情选择器静态模块浮层实现符号网格排列多端样式适配方…...

1.3.1 Linux音频框架alsa详细介绍

ALSA作为对旧OSS系统的替代方案&#xff0c;始于1998年。当时OSS还闭源商业化&#xff0c;因此社区开始开发开源的ALSA。经过多年的发展&#xff0c;ALSA成为Linux内核中音频架构的标准。 结构和架构 ALSA由以下几个主要部分组成&#xff1a; 内核模块&#xff1a; 这是ALSA的…...

R 语言机器学习:为遥感数据处理开启新视角

技术点目录 基础理论、机器学习与数据准备建模与空间预测实践案例与项目了解更多 ——————————————————————————————————————————— 前言综述 在当今科技快速发展的时代&#xff0c;遥感技术为生态学研究提供了海量的数据资源&#xf…...

深度 |提“智”向新,奔向未来——当前机器人产业观察

机器人踏着“猫步”在T台走秀、进入工厂协助造车&#xff0c;教育、医疗、城市管理等领域都有了机器人的帮助……今天&#xff0c;机器人已得到广泛应用&#xff0c;走进你我的生活。    伴随着技术日新月异&#xff0c;机器人产业加快提“智”向新。特别是今年以来&#xf…...

Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化

知识点&#xff1a; 1、安全开发-JavaEE-常见依赖-Actuator&Swagger 2、安全开发-JavaEE-安全问题-配置安全&接口测试 一、演示案例-WEB开发-JavaEE-监控依赖-SpringBoot&Actuator&配置安全 SpringBoot Actuator模块提供了生产级别的功能&#xff0c;比如健康…...

AI Agent开发之门:微软官方课程全面解析

AI Agent开发之门&#xff1a;微软官方课程全面解析 引言项目概览10 节核心课程内容详解1. AI 代理简介及应用场景2. 探索 AI Agentic 框架3. 理解 AI Agentic 设计模式4. 工具使用设计模式5. Agentic RAG&#xff08;检索增强生成&#xff09;6. 构建可信赖的 AI Agents7. 规划…...

Unity-Shader详解-其五

关于Unity的Shader部分的基础知识其实已经讲解得差不多了&#xff0c;今天我们来一些实例分享&#xff1a; 溶解 效果如下&#xff1a; 代码如下&#xff1a; Shader "Chapter8/chapter8_1" {Properties{// 定义属性[NoScaleOffset]_Albedo("Albedo", 2…...

从零打造个人博客静态页面与TodoList应用:前端开发实战指南

前言 在当今数字时代&#xff0c;拥有个人博客和高效的任务管理工具已成为开发者展示自我和提升生产力的标配。本文将带你从零开始&#xff0c;通过纯前端技术实现一个兼具个人博客静态页面和TodoList任务管理功能的综合应用。无论你是前端新手还是希望巩固基础的中级开发者&a…...

开发者如何优雅应对HTTPS抓包难题

开发者如何优雅应对HTTPS抓包难题&#xff1a;工具实战 深度解析 调试HTTPS接口这件事&#xff0c;真是程序员永远的痛。特别是在移动端、或者遇到客户端集成了第三方安全SDK的项目时&#xff0c;网络调试的门槛几乎成倍提升。你可能也遇到过&#xff1a;Charles不识别证书、…...

Ubuntu 安装远程桌面连接RDP方式

1. 安装 XFCE4 桌面环境 如果你的 Ubuntu 系统默认使用 GNOME 或其它桌面环境&#xff0c;可以安装轻量级的 XFCE4&#xff1a; sudo apt update sudo apt install xfce4 xfce4-goodies 说明&#xff1a;xfce4-goodies 包含额外的插件和工具&#xff08;如面板插件、终端等&a…...

Ubuntu 22.04 出现 ‘Temporary failure resolving‘ 解决方案

a、使用apt 安装 resolvconf sudo apt-get install resolvconf b、使用 cd /etc/resolvconf/resolv.conf.d/ 进入文件夹&#xff0c;使用 ls 查看目录&#xff0c;会显示 base head tail c、使用 sudo vim base 编辑base文件&#xff0c; 进入时为空&#xff0c;添加 name…...

ubuntu 22.04 换源

参考&#xff1a;清华大学开源软件镜像站 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...

Java并发编程几个问题的解答

目录 1、以前你编写的Java程序同时能做几件事情&#xff1f;有几个执行流程&#xff1f;main方法执行完&#xff0c;整个程序一定会退出吗&#xff1f;2、早期的电脑一般是单核CPU&#xff0c;但那时我们就可以在编写程序的同时听歌&#xff0c;你觉得其CPU可以同时执行两个程序…...

JavaScript中数组和对象不同遍历方法的顺序规则

在JavaScript中&#xff0c;不同遍历方法的顺序规则和适用场景存在显著差异。以下是主要方法的遍历顺序总结&#xff1a; 一、数组遍历方法 for循环 • 严格按数组索引顺序遍历&#xff08;0 → length-1&#xff09; • 支持break和continue中断循环 • 性能最优&#xff0c;…...

C++ STL入门:set 集合容器

C STL入门&#xff1a;set 集合容器 一、核心特性与适用场景 set 是 C STL 提供的关联式容器&#xff0c;基于红黑树实现&#xff0c;具有两大核心特性&#xff1a; 特性表现形式底层原理元素唯一性重复值自动去重插入时进行二叉树键比对自动排序元素默认升序排列红黑树中序遍…...

[论文笔记] 超详细解读DeepSeek v3全论文技术报告

DeepSeek-V3是一个强大的专家混合(Mixture-of-Experts,MoE)语言模型,总共671B参数,每个token激活37B参数(可以理解为有多个专家,但每个token只会选择一部分专家进行推理,所以一个token的预测,只会用到37B参数),DeepSeek-V3 使用了 多头潜在注意力(...

JS 问号(?)运算符避免中间报错

一、场景 在前端开发过程中&#xff0c;有一些情况比如某些属性可能由于渲染数据的时机不同&#xff0c;一开始是null 或者undifine, 这样访问下面的属性的时候就会报错&#xff0c;我们可以给每个层级后面加个? 就可以避免这个错误。 let data {user: {profile: {name: &q…...

4:点云处理—去噪、剪切、调平

1.点云去噪 dev_clear_window ()dev_open_window(0, 0, 560, 560, black, WindowHandle)GenParamNames : [lut,intensity,light_position,disp_pose,alpha]GenParamValues : [color1,coord_z,0.0 0.0 -0.3 1.0,true,1]DispPose : [0,-0.0005,717.04,280,0,20,0]Instructions[0]…...

机器学习实操 第二部分 神经网路和深度学习 第17章 编码器、生成对抗网络和扩散模型

机器学习实操 第二部分 神经网路和深度学习 第17章 编码器、生成对抗网络和扩散模型 内容概要 第17章深入探讨了自编码器&#xff08;Autoencoders&#xff09;、生成对抗网络&#xff08;GANs&#xff09;和扩散模型&#xff08;Diffusion Models&#xff09;。这些模型能够…...

【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 ISBN号码(模拟)kotori和迷宫(BFS最短路)矩阵最长递增路径(dfs) ISBN号码(模拟) ISBN号码 #include <iostream> #incl…...

【记录】HunyuanVideo 文生视频工作流

HunyuanVideo 文生视频工作流指南 概述 本指南详细介绍如何在ComfyUI中使用腾讯混元HunyuanVideo模型进行文本到视频生成的全流程操作&#xff0c;包含环境配置、模型安装和工作流使用说明。 参考&#xff1a;https://comfyui-wiki.com/zh/install/install-comfyui/install-c…...

DevExpressWinForms-布局之TablePanel

布局之TablePanel 在 DevExpress 的控件库中&#xff0c;TablePanel 是一个功能强大且灵活的布局控件&#xff0c;它能够以表格形式组织和排列其他控件&#xff0c;让界面布局更加规整、有序。无论是开发复杂的企业级应用程序&#xff0c;还是设计简洁美观的用户界面&#xff…...

MySQL 数据库初体验

目录 1.1 数据库简介 1.1.1 使用数据库的必要性 1.1.2 数据库的基本概念 1.数据 2.数据库和数据库表 3.数据库管理系统和数据库系统 1.1.3 数据库发展史 1.数据库系统发展史 &#xff08;1&#xff09;初级阶段——第一代数据库 &#xff08;2&#xff09;中级阶段—…...