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)

相关推荐

  • 死的说法有哪些,“死”的种种说法有哪些

    技术死的说法有哪些,“死”的种种说法有哪些“死”的叫法因时而异,也因死者 的身世、死的原因和方式不同而迥然各异死的说法有哪些。表示等级观念的:皇帝死叫“崩”, 诸侯死叫“薨”,一般士大夫的死,叫“卒”。死的原因和方式不同

    生活 2021年10月26日
  • 视频服务器为什么推荐美国服务器

    技术视频服务器为什么推荐美国服务器美国视频服务器主要是指用于部署视频直播或者点播的流媒体SDK服务器。美国视频服务器一般采用独享的物理服务器。虚拟机不同,用户可以自行管理所有硬件资源,直接控制服务器的负载,不受于其他用户

    礼包 2021年11月1日
  • 怎么查询mysql的编码格式(mysql编码查看方式)

    技术mysql怎么查询编码这篇文章主要为大家展示了“mysql怎么查询编码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql怎么查询编码”这篇文章吧。

    攻略 2021年12月14日
  • sketchformac矢量绘图设计软件(sketchformac矢量绘图软件)

    技术Sketch for mac矢量绘图设计软件怎么用这篇文章将为大家详细讲解有关Sketch for mac矢量绘图设计软件怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定

    攻略 2021年12月24日
  • C#如何实现Winform自动升级程序

    技术C#如何实现Winform自动升级程序这篇文章给大家分享的是有关C#如何实现Winform自动升级程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发第三方工具包新建一个WinForm项

    攻略 2021年12月1日
  • 怎么用C#开发超级账本Fabric

    技术怎么用C#开发超级账本Fabric本篇内容介绍了“怎么用C#开发超级账本Fabric ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读

    攻略 2021年11月26日