※ 引述《lingcandy (candyling)》之铭言:
: 小妹最近刚开始接触 scala
: 在此之前 有接触过java 但对 functional programming没有接触过
: 最近读到 scala的英文教学书里的 symbol literal 实在不是很了解
: 去爬了很多文发现他很像 ruby 里的 symbol
: 根据自己的理解 主要的概念 就是说 symbol可以自订identifier
: (如果也什么错误或观念需要厘清的可以指证我 谢谢~~~)
比较简单的想法是把他想成和数值 literal 和字串 literal 是类似的东西,
例如你写 1 的话会是整数 1,1L 会是长整数 1,"Hello World" 是一个字串一样。
: compile:
: scala> updateRecordByName(favoriteAlbum, "OK Computer")
: <console>:6: error: not found: value favoriteAlbum
: updateRecordByName(favoriteAlbum, "OK Computer")
: Instead, and almost as concisely, you can pass a symbol literal:
: scala> updateRecordByName('favoriteAlbum, "OK Computer")
: 想请问各位大大
: 这边有点不懂QQ 为什么直接写favoriteAlbum会有错呢??
因为写 favoriteAlbum 的话,会去找 favoriateAlbum 这个变量/函式这些,
但你没有宣告过这个变量,自然会找不到
'favoriteAlbum 的话,则是一个型态与 Symbol 相符的常数,所以可以丢到
updateRecordByName 里面。