在scala中键入别名以在单独的软件包中使用

死鸟11

我有两个文件,Vec3.scalaMain.scalaVec3.scala我定义Vec3的情况下类,它实现很好的运营商的各种喜欢+unary_-,点产品,等等。因为我会在项目中使用两种颜色,并指出我的工作,我的C ++的本能要我输入别名Vec3ColorPoint3像这样:

// Vec3.scala
package vec3

final case class Vec3(x: Float, y: Float, z: Float) {
  ...math functions...
}

type Color = Vec3
type Point3 = Vec3

但是,当我尝试使用进行编译时sbt,出现了一些我期望的错误:

expected class or object definition
type Color = Vec3
^

我认为这是因为这些类型别名不存在于类或对象中,但是我不希望它们存在,因为我更喜欢Color并且Point3具有与Vec3自身相同的易用性如果我使用的是C ++,则只需将这些定义放在头文件中,然后每天称呼它,可惜。有没有一种方法可以在Scala中做到这一点,而无需让我的vec3软件包的用户每次在文件中使用它们时都自己使这些类型别名呢?还是有一些漂亮的Scala演技以不同的方式解决了这个问题?

马丁

类型别名不能在scala 2的类,特征或对象之外存在。而是package对象中定义它们

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么时候在Java中使用单独的软件包?

来自分类Dev

在Vala中使用软件包

来自分类Dev

在Angular中使用Darkreader软件包

来自分类Dev

在Scala和Breeze软件包中使用多项式分布

来自分类Dev

在Scala和Breeze软件包中使用多项式分布

来自分类Dev

如何在Scala的两个软件包中使用函数?

来自分类Dev

在同一软件包中使用另一个类,但在单独的文件中

来自分类Dev

在Scala 2.10中键入对案例类的别名

来自分类Dev

如何在Python软件包中使用日志记录?

来自分类Dev

禁用在Gradle中使用'kotlin'软件包的检查

来自分类Dev

在dplyr软件包中使用过滤器

来自分类常见问题

如何在PyCharm中使用已安装的软件包?

来自分类Dev

如何在jenkins中使用pip安装软件包

来自分类Dev

如何在PowerShell脚本中使用NuGet软件包?

来自分类Dev

无法在npm中使用已安装的软件包

来自分类Dev

在MonoDevelop中使用特定版本的软件包

来自分类Dev

直接在Symfony中使用Composer安装的软件包

来自分类Dev

在sis软件包中使用临时表

来自分类Dev

在R中使用xlsx软件包进行字体着色

来自分类Dev

如何在不同的软件包中使用OSGI服务

来自分类Dev

在Laravel软件包的RouteServiceProvder中使用“命名空间”方法

来自分类Dev

如何在Dockerfile中使用miniconda安装软件包?

来自分类Dev

在Monorepo中使用许多软件包构建条件云

来自分类Dev

无法在Docker容器中使用chcolatey安装软件包

来自分类Dev

如何在R / exams中使用LaTeX软件包?

来自分类Dev

整理要在vscode中使用的软件包?

来自分类Dev

如何在Jupyter中使用LaTexStrings软件包?

来自分类Dev

如何在Jupyter Notebooks中使用Github软件包

来自分类Dev

在MonoDevelop中使用特定版本的软件包

Related 相关文章

热门标签

归档