标识符的使用说明|学习笔记

简介: 快速学习标识符的使用说明。

开发者学堂课程【Scala 核心编程-基础标识符的使用说明】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8901


标识符的使用说明

 

目录

一、 标识符的命名规范

二、 标识符的命名规则

三、 标识符举例说明

 

一、 标识符的概念

1. Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符。

//在 scala 中方法和函数是两个不同的或者是有区别的概念

2. 凡是自己可以起名字的地方都叫标识符。

 

二、 标识符的命名规则

Scala 中的标识符声明,基本和 Java 是一致的,但是细节上会有变化。

//比如说类名,包名,方法名,文件名几乎都是一样,但是细节会有变化

1. 首字符为字母,后续字符任意字母和数字,美元符号,可后接下划线_  //跟 java 一样

2. 数字不可以开头 //和 java 相同

3. 首字符为操作符(比如+-*/),后续字符也需跟操作符,至少一个(反编译) //特别

例子:

package com.atguigu.chapter02.iden

object IdenDemo01 {

def main(args:Array[String]):Unit= {

val ++ = “hello,world!” //定义一个函数,没有报错也就是说++可以当做一个标识符来进行使用

println(++) //输出

运行结果如下:

D:\program\jdk8\bin\java…

hello,world!

Process finished with exit code 0

没有任何问题,但是它有一个前提是如果首字符是一个操作符的话后续必须跟一个操作符

如果减少一个+号就会报错:

val + = “hello,world!”

println(+)  //错误

val -+=90 //正确

println(“res=”+ -+)

运行结果如下:

image.png

D:\program\jdk8\bin\java

hello,world!

res=90

没有错误。

错误示范:

val +q=”abc”  //错误

后续字符也得跟一个或者多个操作符

val -+*/ = 90  //正确

底层操作://看看编译器是如何处理此问题的

打开反编译工具,找到刚才所编写的案例的文件,点击进入可以看到代码如下:

package com.atguigu.chapter02.iden;

import scala.Predef.;

public final class IdenDemo01$

{public static final MODULE$;

static

{new();

}

public void main(String[] args)

{

String $plus$plus = “hello,world!”;  //将操作符进行了转译

Predef..MODULE$.println($plus$plus);

int $minus$plus$times$div=90; //操作符转译

Predef..MODULE$println(new StringBuilder().append(“res=”).append(BoxesRunTime.boxToInteger($minus$plus$times$div)).toString());

}private IdenDemo01$(){MODULE$ = this;

}}

//++ => $plus$plus

4. 操作符(比如+-*/)不能在标识符中间和最后

5. 用反引号‘.…..’包括的任意字符串,即使是关键字(39个)也可以 [true]

例子:

var true = “hello,scala!”  //给它一个字符串,发生错误,因为这是一个关键字

修改错误://加上反引号

var ‘true’ = “hello,scala!”  //正确

println(“内容=”+ ‘true’)  //输出

//反引号不可以去掉,它的作用是在编译器中告诉编译器,此位置就是标识符,而不是 true

运行结果如下:
image.png

D:\program\jdk8\bin\java…

hello,world!

res=90

内容=hello,scala!

//mysql 中使用 int 做一个表名,也可以使用反引号

 

三、 标识符举例说明

hello  //正确

hello  //正确

1hello  //错误,原因是数值打多了

h-b  //错误,原因是操作符在中间

x h  //错误,原因是中间出现空格

h_4  //正确 

_ab  //正确

Int  //正确,int 在 scala 中不是关键字而是预定义标识符,所以可以用,但是不推荐

例子:

var Int =90.45  //没有报错,因为类型为 double 类型

println(“Int=”+ Int)

运行结果如下:
image.png

Int=90,45

没有任何问题。

Float  //正确

_  //错误,因为在 scala 中,下划线_有很多其他的作用,因此不能使用

例子:

//不能使用_做标识符
var _ = “jack”

println(_)

运行效果如下:
image.png

Information 2018/11/12 9:57 – Compilation completed with 1 error and 0 warnings in 1s 400ms

C:\Users\Administraor\IdeaProjects\java0705scala\src\main\scala\com\atguigu\chapter02\iden\IdenDemo01_scala

Error(26,13) missing parameter type for expanded function ((x$1) => println(x$1))

println(…)

出现异常,如果直接使用下划线_的话它就不是标识符了,它就会有其他的作用,比如在引包的时候代表所有包下所有相关的类等等。

Abc  //正确

+*-  //正确

+a  //错误,因为首先使用标识符,后面就不可以跟字符

相关文章
|
6月前
|
存储 算法 数据库
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
339 0
|
6月前
|
小程序 JavaScript 前端开发
【经验分享】如何获取任意小程序appId及页面路径
【经验分享】如何获取任意小程序appId及页面路径
333 7
|
网络协议
udhcpc 参数使用说明
当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能。如下:   udhcpc -b -i eth0 -p /var/run/udhcpc.pid -R解释一下,-b就是切换到后台指令,-i是指定使用哪个网络接口,双网卡的时候一定要使用它来指定eth0  or  eth1。
2502 0
|
3月前
|
开发工具 数据安全/隐私保护 Python
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
【Azure 环境】通过Python SDK收集所有订阅简略信息,例如订阅id 名称, 资源组及组内资源信息等,如何给Python应用赋予相应的权限才能获取到信息呢?
|
6月前
|
前端开发 微服务
开发指南019-版本标识
平台设计了查询运行系统版本的能力
|
前端开发
前端学习笔记202304学习笔记第六天-组件注册名称大小写
前端学习笔记202304学习笔记第六天-组件注册名称大小写
49 0
|
JavaScript Java Scala
编写规则 注意事项和手册|学习笔记
快速学习编写规则 注意事项和手册。
编写规则 注意事项和手册|学习笔记
|
开发者 Python
标识符的命名规则与规范 | 学习笔记
快速学习 标识符的命名规则与规范
标识符的命名规则与规范 | 学习笔记
|
编译器 Go 开发者
标识符基本使用|学习笔记
快速学习标识符基本使用
|
开发者 Python
函数的文档说明| 学习笔记
快速学习函数的文档说明