内建控制结构之变量范围
博客专区 > 柳哥 的博客 > 博客详情
内建控制结构之变量范围
柳哥 发表于4年前
内建控制结构之变量范围
  • 发表于 4年前
  • 阅读 28
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

如果你是java程序员,你会发现scala的范围规则几乎是java的翻版。然而,两者之间仍然有一个差别scala允许在嵌套范围内定义同名变量
Scala程序里所有的变量定义都存在有效作用范围。最常见的情况是:花括号通常引入了新的作用范围,所以任何定义在花括号里的东西超出括号之后就脱离了范围(注:这条规则有几个例外,因为在scala里有时候可以用花括号代替小括号。For表达式的可选语法是这种用法的一个例子)。如例:


结果:


本例中定义的所有变量----i,j,prod,k----都是本地变量,也就是对于定义它们的函数来说是“局部”的。每次函数被调用的时候都会使用一整套全新的本地变量。一旦变量被定义了,在同一个范围内就无法定义同样的变量名了。如例:


然而,你可以在内部范围内定义与外部范围里的变量名相同的变量。如:


结果:


Scala和java间要注意的差异是java不允许在内部范围内创建与外部范围变量同名的变量。在scala程序里,内部变量被认为遮蔽了同名的外部变量,因为在内部范围中外部变量变得不可见

标签: scala
共有 人打赏支持
粉丝 200
博文 394
码字总数 347782
×
柳哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: