Scala的标识符构成方式有哪些

技术Scala的标识符构成方式有哪些本篇内容介绍了“Scala的标识符构成方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

本文介绍了关于“Scala的标识符有哪些方法?”很多人在实际案例操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

Scala中有两种形式的标识符:字母数字和运算符。Scala在编写标识符时有非常灵活的规则。除了这两个,你会看到还有另外两个。

字母数字标识符:字母数字标识符以字母或下划线开头,后面可以是字母、数字或下划线。“$”字符也被视为字母,但它被保留为Scala编译器生成的标识符。用户程序中的标识符不应包含“$”字符,尽管它可以被编译;但是,这可能会导致名称与Scala编译器生成的标识符冲突。

Scala遵循Java的驼峰风格,这种风格被称为驼峰风格:camel case,因为标识符由带有大写字母的嵌入式单词组成。习俗,如toString和HashSet。虽然下划线在标识符中是合法的,但它在Scala程序中并不常用,部分原因是它与Java一致,还因为它在Scala代码中有许多其他非标识符的用法。因此,* * *避免使用像to_string、___ init _、或name_这样的标识符。字段、方法参数、局部变量和函数的驼峰名称应该以小写字母开头,如length、flatMap和s。类和特性的驼峰名称应该以大写字母开头,如BigInt、List和UnbalancedTreeMap。

注意

在标识符末尾使用下划线的一个结果是,例如,如果您试图编写一个类似“val name _ : int=1”,你会收到一个编译器错误。编译器会认为你正常是定义一个叫做“name_:”的变量。要让它编译通过,你将需要在冒号之前插入一个额外的空格,如:“val name _ 3360 int=1”。"”的定义

Scala和Java的区别在于常量名。在Scala中,常量这个词和val不一样。尽管val在初始化后保持不变,但它仍然是一个变量。例如,方法参数是val,但是每次调用方法时,这些val可以表示不同的值。而常数更持久。比如斯卡拉。数学。圆周率被定义为非常接近实数的双精度值,它代表圆与其直径的比率。这个值不太可能改变,所以圆周率显然是一个常数。也可以用常量给代码中一些用作幻数的值起个名字:文本值没有解释力,如果出现在多个地方,那就极其糟糕了。您可能还需要定义用于模式匹配的常数。用例将在第15.2节中描述。在Java中,常量名称通常都是大写的,像MAX_VALUE或pi这样的单词用下划线隔开。在Scala中,习惯是只有* * *字母必须大写。因此,Java风格的常量名称,比如X_OFFSET,也可以用在Scala中,但是Scala的惯例是常量也使用驼峰式的,比如XOffset。

操作员标识符:操作员标识符由一个或多个操作员字符组成。操作符字符如,可打印的ASCII字符,~或#。更准确地说,运算符字符属于数学符号(Sm)或其他符号(So)的Unicode集合,或者不是字母、数字、括号、方括号、大括号、单引号或双引号的7位ASCII字符,或者下划线、句点、分号、冒号和向后字符。以下是操作员标识符的一些示例:

:-

Scala编译器将在内部“粉碎”运算符标识符,将其转换为嵌入“$”的合法Java标识符。例如,标识符:-将在内部表示为$冒号$减去$更大。如果您想从Java代码中访问这个标识符,您应该使用这个内部表达式。

Scala中的运算符标识符可以任意长,所以Java和Scala之间有一些小的区别。在Java中,输入的x -y会被分成四个词法符号,所以写X-Y没什么区别,在Scala中,-会被拆分为一个标识符得到X-Y,如果想得到* * *解释,应该在''和'-'字符之间加一个空格。这在实际应用中大概不会是问题,因为很少有人在用Java写x -y的时候不注意加空格或者括号。

混合标识符:混合标识符由字母数字字符组成,后跟下划线和运算符标识符。例如,一元_用作定义一元“”运算符的方法名。或者,使用myvar_=作为方法名来定义赋值运算符。总之,混合标识符格式myvar_=由Scala编译器生成,以支持属性:property;第十八章进一步解释。

文本标识符:文字标识符是用反引号括起来的任何字符串.`.例如:

` x` ` clinit` `yield `

这个想法是,您可以将运行时识别的任何字符串放在引号后面作为标识符。总是结果Scala标识符。即使后引号中的名称是Scala保留字,此规则也有效。在Java的Thread类中访问静态yield方法是一个典型的用例。你不能写Thread.yield(),因为yield是Scala的保留字。但是,您仍然可以在后面的引号中引用该方法的名称,例如Thread.`yield()。

“Scala标识符的形式是什么?”感谢阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/140956.html

(0)

相关推荐

  • 2021218 LeetCode刷题 旋转字符串,难度 :单词规律)

    技术2021218 LeetCode刷题 旋转字符串,难度 :单词规律) 2021218 LeetCode刷题 旋转字符串(难度 :单词规律)给定两个字符串, A和B。
    A的旋转操作就是将A 最左边

    礼包 2021年12月21日
  • sparksql写入hdfs动态分区(spark继承了什么分布式的优点)

    技术Spark的集群deploy模式有哪些这篇文章主要介绍“Spark的集群deploy模式有哪些”,在日常操作中,相信很多人在Spark的集群deploy模式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年12月14日
  • 如何使用Angular JS + Express JS入门搭建网站

    技术如何使用Angular JS + Express JS入门搭建网站这期内容当中小编将会给大家带来有关如何使用Angular JS + Express JS入门搭建网站,文章内容丰富且以专业的角度为大家分析和叙述,阅读

    攻略 2021年10月29日
  • 如何理解Java设计模式的装饰模式

    技术如何理解Java设计模式的装饰模式这篇文章主要介绍“如何理解Java设计模式的装饰模式”,在日常操作中,相信很多人在如何理解Java设计模式的装饰模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年11月8日
  • 如何使用SPNEGO配置身份验证

    技术如何使用SPNEGO配置身份验证这篇文章给大家介绍如何使用SPNEGO配置身份验证,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Cloudera Manager 6.3和更高版本支持使用SPNE

    攻略 2021年11月10日
  • java中抽象类和接口的区别(java接口和抽象类有什么不同)

    技术java中抽象类和接口的相同和不同点是什么这篇文章将为大家详细讲解有关java中抽象类和接口的相同和不同点是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言下面

    攻略 2021年12月20日