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

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

开发者学堂课程【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  //错误,因为首先使用标识符,后面就不可以跟字符

相关文章
|
NoSQL 索引 MongoDB
利用MongoDB的SplitVector命令实现并发数据迁移
数据迁移是数据库运维中一个很常见的场景。数据迁移分为全量和增量。为了追求速度,通常我们会采用并发的方式对数据进行全量迁移。在全量导出数据时,通常都会选择做到记录级的并发,因此通常会涉及到对需要导出的某个表(集合)按照并发度进行切分(分区)的过程。现有常用做法是通过若干个skip加limit来找到一些分区点,然后就可以并发同时导出多个分区。事实上MongoDB还有一个SplitVector命令特别适合用来做集合的分区。本文将介绍一下如何利用这个命令来对集合做分区,实现并发数据迁移。
7123 0
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
216 0
|
11月前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
334 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
JSON 测试技术 API
API接口:原理、实现及应用
API接口:原理、实现及应用
|
自然语言处理
通义灵码个人版评测
通义灵码个人版评测
255 1
|
存储 算法 索引
从菜鸟到大神:一文带你彻底搞懂Python中的后缀树Suffix Tree奥秘!
在Python编程中,后缀树是一种高效的数据结构,特别适用于处理复杂的字符串问题,如搜索、最长公共前缀查询及最长重复子串查找等。本文通过问答形式介绍后缀树的基本概念、重要性及其实现方法。后缀树能显著提高字符串处理效率,将传统方法的时间复杂度从O(nm)降至接近O(m)。尽管其构建过程较复杂,但通过手动编写代码或使用第三方库,我们可以在Python中实现这一强大工具。后缀树的应用广泛,涵盖字符串搜索、压缩、生物信息学等多个领域,学习它不仅能帮助解决实际问题,更能提升算法思维和数据结构设计能力。
392 1
|
存储 消息中间件 关系型数据库
ElasticSearch Relation Design (ES关联查询)
ElasticSearch Relation Design (ES关联查询)
358 0
|
存储 Kubernetes 负载均衡
【Service Mesh】最佳实践在哪里-2:多集群流量管理
服务网格 - 多集群流量管理最佳实践相关思考
FL Studio21水果电脑编曲软件宿主插件下载及配置要求
电脑编曲软件也就是我们常说的宿主软件,英文简称DAW。 FL Studio俗称水果,是一款开发初衷为了电子音乐制作的宿主软件。内置了非常多优秀的合成器以及效果器插件,极为适合于电子音乐的编排。同时FL Studio支持第三方音源插件导入,这使得FL Studio对除了电子音乐以外更多的音乐风格有了可能性。
1023 0
|
存储 安全 前端开发
token详解
token详解
5171 0