gpt4 book ai didi

scala - 定义一个 Scala 变量范围

转载 作者:可可西里 更新时间:2023-11-01 16:39:48 27 4
gpt4 key购买 nike

我是这个领域的新手,正在尝试基本的东西,但陷入了一个简单的变量范围问题。

在下面的代码中,我想在整个程序中使用“item”并打印它的值。但是,当我在 foreach 循环中使用“item”时,它会将其视为局部变量,并且它的值在循环外不可用。

你能告诉我我错在哪里吗?

import scala.collection.immutable._

val set1=Set()
val set2=Set("A","B","C")
var item:String=null

println(set1.isEmpty)
println(set2.head)
println(set2.tail)

set2.foreach{item => if (item != "A") println(item)}

println(item)

结果:

是的res0: 单位 = ()一种res1: 单位 = ()集合(B, C)res2: 单位 = ()

乙Cres3: 单位 = ()

null//预期它将获取 foreach 循环的最后结果

最佳答案

foreach 中,您正在创建一个具有相同名称的新变量,因此它“隐藏”了第一个 item 的存在。

x => 是命名传递给后面匿名函数的参数的语法。

听起来你想要类似的东西......

set2.foreach{x => item = x; if (item != "A") println(item)}

关于scala - 定义一个 Scala 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com