欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > scala换行字符

scala换行字符

2025/11/12 16:09:39 来源:https://blog.csdn.net/2402_87144407/article/details/144409948  浏览:    关键词:scala换行字符

 语法: semi ::= „;‟ | nl{nl} Scala是一个基于行的语言。分号和换行均可作为语句的结束。如果换行满足以下三 个条件则会被认为是一个特殊符号‟nl‟:

1. 换行之前的符号是一个语句的结束 2. 换行之后的符号是一个语句的开始 3. 符号处在一个允许多语句的区域中 可以作为语句结束的符号是:常量,标识符,保留字以及以下的分隔符: this null true false return type - ) ] } 词法 可以作为语句开始的符号是除了以下分隔符及保留字之外的所有Scala符号: catch else extends finally forSome match requires with yield , . ; : _ = => : # [ ) ] } 符号case只有在class或者object符号之前才可以作为语句开始。 多行语句许可的条件: 1. 整个Scala源文件中,除了换行被禁止的嵌套区域 2. 在匹配的{与}之间,除了换行被禁止的嵌套区域 多行语句在以下区域被禁止: 1. 在匹配的(与)之间,除了换行被允许的嵌套区域。 2. 在匹配的[与]之间,除了换行被允许的嵌套区域。 3. 在case符号以及与其匹配的=>符号之间,除了换行被允许的嵌套区域。 4. XML模式下的区域(§1.5)。 注意在 XML 中大括号{..}被转义,字符串并不是符号。因此当换行被允许时不要关 闭区域。 一般地,即使连续的两个非换行符号中有多行,也只会插入一个 nl 符号。然而,如 果两个符号被至少一个空行(行中没有可打印字符)分隔开,那么两个符号中就会插入两个 nl符号。 Scala 语法(全文见附录 A)允许可选的 nl 符号,但分号不在此列。这样在某些位置 换行并不会结束一个表达式或语句。这些位置如下所列: 以下位置允许多个换行符号(换了分号是不行地): - 在条件表达式(§6.16) 或while循环(§6.17)的条件及下一个表达式间 - For循环(§6.19)中计数器及下一个表达式间 - 类型定义或声明中,在开始的type关键字之后 以下位置允许单个换行: - 在一个是当前语句或表达式的合法继续的大括号”{”前 - 如果下行的第一个符号是一个表达式的开始(§6.12),本行的中缀算符之后 - 在一个参数子句前(§4.6) - 在一个标注(§11)之后 示例 1.2.1 以下是跨两行的四个合法语句。两行间的换行符号并未作为语句结束。 if(x > 0) x = x – 1 while(x > 0) x = x / 2 for(x 10 加一个换行后就成了两个表达式: x < 0 || x > 10 示例1.2.4 以下代码定义了一个单一的柯里化的函数: def func(x: Int) (y: Int) = x + y 加一个换行后,同样的代码就成了一个抽象函数和一个非法语句 def func(x: Int) (y: Int) = x + y 

以下代码是一个加了标注的定义: @serializable protected class Data{...} 加一个换行后,同样的代码就成了一个属性标记和一个单独的语句(实际上是非法的) @serializable protected class Data{...} 词

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词