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)

相关推荐

  • JVM指令系统的组成及怎么用使用

    技术JVM指令系统的组成及怎么用使用JVM指令系统的组成及怎么用使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。介绍一下JVM指令系统 的概念和用法,JV

    攻略 2021年10月23日
  • CTF入门学习3-Web通信基础

    技术CTF入门学习3-Web通信基础 CTF入门学习3-Web通信基础本篇文章主要介绍WEB通信的机制,主要介绍了URL协议和HTTP协议。Web安全基础
    01 Web通信
    这个部分重点介绍浏览器与We

    礼包 2021年11月20日
  • 如何使用YCSB进行HBase性能测试

    技术如何使用YCSB进行HBase性能测试这篇文章给大家分享的是有关如何使用YCSB进行HBase性能测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在集群上运行任何性能基准测试工具时,关键

    攻略 2021年12月8日
  • C++为什么要保持默认操作的一贯性

    技术C++为什么要保持默认操作的一贯性这篇文章主要介绍“C++为什么要保持默认操作的一贯性”,在日常操作中,相信很多人在C++为什么要保持默认操作的一贯性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年11月29日
  • Django组件-cookie与session

    技术Django组件-cookie与session Django组件-cookie与sessionDjango组件-cookie与session
    会话跟踪技术
    1 什么是会话跟踪技术
    我们需要先了解

    礼包 2021年12月13日
  • 苏轼是哪个朝代,水调歌头苏轼什么朝代什么意思

    技术苏轼是哪个朝代,水调歌头苏轼什么朝代什么意思手足之情甚笃,“转朱阁”,此事古难全”三句,谓月光照着有离愁别恨的人,即量移汝州,现在想随风回到天上神仙住的‘琼楼玉宇’中去。同时这也就是儒家“无人不自得”的思想、胸怀坦荡

    生活 2021年10月25日