加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala语法奇怪与::并要求小写

发布时间:2020-12-16 18:54:45 所属栏目:安全 来源:网络整理
导读:这应该发生吗? scala val myList = List(42)myList: List[Int] = List(42)scala val s2 :: Nil = myLists2: Int = 42scala val S2 :: Nil = myListconsole:8: error: not found: value S2 val S2 :: Nil = myList ^ 它似乎区分大小写.错误或“功能”? 解决
这应该发生吗?

scala> val myList = List(42)
myList: List[Int] = List(42)

scala> val s2 :: Nil = myList
s2: Int = 42

scala> val S2 :: Nil = myList
<console>:8: error: not found: value S2
       val S2 :: Nil = myList
           ^

它似乎区分大小写.错误或“功能”?

解决方法

它区分大小写.在匹配模式中,以大写字母开头(或由反引号引用)的标识符被视为对定义值的引用,而不是新绑定.

这让很多人感到意外,而且阅读Scala语言规范并不是很明显.最相关的位是“variable patterns”……

A variable pattern x is a simple identifier which starts with a lower case letter. It matches any value,and binds the variable name to that value.

……和“stable identifier patterns”:

To resolve the syntactic overlap with a variable pattern,a stable identifier pattern may not be a simple name starting with a lower-case letter.

相关问题:

> Why does pattern matching in Scala not work with variables?
> Scala pattern matching with lowercase variable name
> How to pattern match into an uppercase variable?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读