簡體   English   中英

在 Scala 中是否可以在包中包含函數/方法{}?

[英]Is it possible in Scala to have functions/methods inside a package{}?

我目前正在關注 Wiem Zine 小姐的文章(特別是關於 ZIO):讓您的程序可測試

但我無法通過

package console {
  def println(line: String): ZIO[Console, Nothing, Unit] =
    ZIO.accessM(_.console println line)

  val readLine: ZIO[Console, Nothing, String] = 
    ZIO.accessM(_.console.readLine)
}

我讀過alvin alexander 的頁面,但都是關於范圍界定的。

我在intellij中嘗試過,但它抱怨。

會不會是一個

package object console {
...
}

而不是package console {}

還是那是 scala 3 的東西? 還是我做錯了什么?

在 Scala 2 中,我們有一個 package 對象的概念。 這里有一些例子: https://www.scala-lang.org/docu/files/packageobjects/packageobjects.html

I think code snippet from "Wiem Zine's article" is missing object keyword, so you are right it should be: package object console , since the whole example is on ZIO and Scala 2.x. 據我所知,Scala 3 還沒有 ZIO :-)

@Thilo 也是正確的,Scala 3 允許我們直接在文件中使用頂級定義,而無需包裝成塊。 在 Scala 3 之前,可以使用package object獲得通用的 ZEFE90A8E604A7C840E88D03A7D8 代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM