大数据全系列 教程
1869个小节阅读:468k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Scala 可以使用两种形式的标识符,字符+数字和符号。
标识符使用字母或是下划线开头,后面可以接字母或是数字。
xxxxxxxxxx
package cn.itbaizhan.chapter02
//标识符的基本规则
object Identifier1 {
def main(args: Array[String]): Unit = {
/*scala的标识符和java的标识符基本一致
1.可以使用字母、数字,下划线,$(不建议使用)
2.是区分大小写的。
3.长度是没有限制的。
4.数字不能为标识符的开头
5.关键字不能直接用来作为标识符
*/
var name = "tuhao1"
var naMe = "tuhao2"
var name1 = "diaosi"
//var 2name = "baifumei"//错误的
//var def = "aitucuo"//错误的
var name_ = "baifumei2"
}
}
Scala内部实现时会使用转义的标识符,比如:-> 使用 $colon$minus$greater 来表示这个符号。因此如果你需要在 Java 代码中访问:->方法,你需要使用 Scala 的内部名称 $colon$minus$greater。
xxxxxxxxxx
package cn.itbaizhan.chapter02
object Identifier2 {
def main(args: Array[String]): Unit = {
//不建议使用特殊符号做标识符
// 编译后将> 转义为 $greater,所以我们使用$开头的标识符容易产生冲突
val > = "tuhao"
println(>)//tuhao
//val $greater = "diaosi"//
//下划线不要 直接作为标识符的名称
/*val _ = "username"
println(_)//运行时出现异常*/
}
def method(): String ={
"method()被调用了.."
}
def :->():Unit={
println(":->()被调用了..")
}
}
java代码如下:
xxxxxxxxxx
package cn.itbaizhan.chapter02;
public class Identifier2Java {
public static void main(String[] args) {
/*String result = Identifier2.method();
System.out.println(result);*/
//调用Identifier2中的:->()
Identifier2.$colon$minus$greater();
}
}
以"$"开头的标识符为保留的 Scala 编译器产生的标识符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。
Scala 的命名规则采用和 Java 类似的 驼峰命名规则,首字符小写,比如 toString。类名的首字符还是使用大写。
避免使用以下划线结尾的标识符以避免冲突。符号标识符包含一个或多个符号,如+,:,? 等,比如:
xxxxxxxxxx
+ ++ ::: < ?> :->
xxxxxxxxxx
package cn.itbaizhan.chapter02
//了解即可
object Identifier3 {
def main(args: Array[String]): Unit = {
val ## = "tuohao"
val @@ = "diaosi"
val + = "tuhao1"
val - = "tuhao1"
val * = "tuhao1"
val / = "tuhao1"
val % = "tuhao1"
val < = "tuhao1"
val :: = "tuhao1"
val ? = "tuhao1"
}
}
可以在反引号之间使用任何有效的 Scala 标识符,Scala 将它们解释为一个 Scala 标识符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字,如下方式使用。
xxxxxxxxxx
package cn.itbaizhan.chapter02
//关键字作为标识符如何解决
object Identifier4 {
def main(args: Array[String]): Unit = {
//以下两个代码 编译错误
/*val def = "主函数变量"
val private = "test1"*/
//如果需要使用关键字作为标识符,需要使用反引号
val `def` = "主函数变量"
val `private` = "test1"
println(`def`)
Thread.`yield`()
}
}
下表列出了 scala 保留关键字,我们不能使用以下关键字作为变量名:
abstract | case | catch | class |
---|---|---|---|
def | do | else | extends |
false | final | finally | for |
forSome | if | implicit | import |
lazy | match | new | null |
object | override | package | private |
protected | return | sealed | super |
this | throw | trait | try |
true | type | val | var |
while | with | yield | |
- | : | = | => |
<- | <: | <% | >: |
# | @ |