Scala:for-yield表达式基本简单介绍(通俗易懂!!)

最简结构:三步走

想象你要「批量加工」一堆物品,步骤是:

  1. 拿一个筐(比如 List(1,2,3)
  2. 逐个处理每个物品(比如每个数 n
  3. 生成新筐(比如每个数变成平方)

写成代码就是:

scala复制代码

val 新筐 = for (物品 <- 旧筐) yield 加工后的物品
例子:水果变果干

scala复制代码

val 水果筐 = List("苹果", "香蕉", "橙子")

// 每个水果变成果干
val 果干筐 = for (水果 <- 水果筐) yield s"${水果}干"

// 结果:List("苹果干", "香蕉干", "橙子干")

加上过滤:只处理符合条件的

比如只要苹果做果干,其他不要:

scala复制代码

val 果干筐 = for {
  水果 <- 水果筐
  if 水果 == "苹果"  // 只留苹果
} yield s"${水果}干"

// 结果:List("苹果干")

多层循环:组合加工

比如用苹果做果汁和果酱,香蕉只做果酱:

scala复制代码

val 水果 = List("苹果", "香蕉")
val 做法 = List("果汁", "果酱")

val 成品 = for {
  f <- 水果          // 第一层循环:水果
  z <- 做法          // 第二层循环:做法
  if !(f == "香蕉" && z == "果汁") // 香蕉不做果汁
} yield s"${f}${z}"

// 结果:List("苹果果汁", "苹果果酱", "香蕉果酱")

核心规则

  1. 必须用 yield:没有它,代码就只是循环,不会生成新集合。
  2. 箭头 <-:表示从集合里「取出」元素。
  3. 代码顺序:先写循环(<-),再写过滤(if)。

常见错误

❌ 忘记写 yield

scala复制代码

// 错误!返回的是 Unit(无结果)
for (n <- List(1,2)) { n * 2 }
✅ 正确:

scala复制代码

// 正确!返回新集合 List(2,4)
for (n <- List(1,2)) yield n * 2

一句话总结

for-yield 就是:「遍历一个筐里的每个东西,按条件处理,最后打包成新筐」。

Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值