[scala代码风格指南]--文档

英文原文:http://docs.scala-lang.org/style/

译文如下:


通常,文件应包含单个逻辑编译单元。通过“逻辑”我的意思是一个类,特征或对象。本指南的一个例外是具有伴随对象的类或特征。伴随对象应与其相应的类或特征分组在同一文件中。这些文件应该根据它们包含的类,特征或对象来命名:

package com.novell.coolness
class Inbox { ... }
// companion object object Inbox { ... }

这些编译单元应放在目录中命名 Inbox.scalacom/novell/coolness文件中。简而言之,Java文件命名和定位惯例应该是首选的,尽管Scala允许在这方面有更大的灵活性。

多单元文件

尽管上面说过,但是有一些重要的情况需要在单个文件中包含多个编译单元。一个常见的例子是密封特性和几个子类(通常模拟功能语言中的ADT语言功能):

sealed trait Option[+A]
case class Some [ A ]( a : A ) extends Option [ A ]
case object None extends Option [ Nothing ]

由于密封的超类(和特征)的性质,所有子类型都 必须包含在同一个文件中。因此,这种情况绝对符合一个单一文件的偏好应被忽略的情况。

另一种情况是当多个类逻辑上形成一个单一的,凝聚力的群体时,将概念分享到通过将其包含在单个文件中来大大地提供维护的点。这些情况比上述密封超类异常难以预测。一般来说,如果在单个文件中对多个单位进行长期维护和开发更容易,而不是跨多个进行分散,那么这种组织策略应该优先于这些类。但是,请记住,当单个文件中包含多个单元时,在进行更改的时候,找到特定单元往往更加困难。

所有多单元文件应该以小写第一个字母给出camelCase名称。这是一个非常重要的惯例。它区分多单元文件,大大减轻了查找声明的过程。这些文件名可能基于它们包含的重要类型(option.scala例如上面的示例),或者可以描述(例如ast.scala内的所有单元共享的逻辑属性 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值