該規範9.3說:
的標準命名約定是把上面的定義在 文件名爲package.scala多數民衆贊成位於對應 到包裝物P的目錄。
這意味着被反撥的窗體不是標準的約定。
我同意沒有足夠的用戶指導,特別是在編譯時的交互方面。
區別在於您無法命名默認包。
object `package` {
def f() = println("Hi")
}
object Foo extends App {
f()
}
編輯:我寧願避免反引號(因爲打標籤或ESC,而不是高危險),但我只是有一個用例,我真的想在一個源文件我的代碼,但我也喜歡避免包嵌套或相對的包裝,因此backticking:
package com.github.maqicode.deprecator
object `package` {
// crashes scalac, actually
implicit class MaybeInt(val s: String) extends AnyVal {
def toInt_? : Option[Int] = if (s.isEmpty) None else convert
private def convert = try { Some(Integer.parseInt(s))
} catch { case _: NumberFormatException => None }
}
}
// lots of code, so avoid package deprecator { ... }
case class Version(major: Int, minor: Option[Int], point: Option[Int], descriptor: String)
object Version {
val version = """(\d+)(?:\.(\d+))?(?:\.(\d+))?(.*)""".r
def apply(descriptor: String): Version = {
val version(major, minor, point, rest) = descriptor
Version(major.toInt, minor.toInt_?, point.toInt_?, descriptor)
}
}
至於隱含的問題,誰曾經使用默認的包斯卡拉:我看到了它的測試代碼。
你有沒有說「除了風格」?嘿,這全是關於風格。
就我個人而言,我發現反斜槓但不明顯。如果我必須每天額外抓十次頭,那麼在今年年底,我會失去一些頭髮。
OTOH,如果我劃傷了下巴,並且「唔」夠了,我不必刮鬍子,那也沒關係。
這不是那些課程中的一個問題,是嗎?
這不是Coursera的問題,但包裝對象的主題是在Coursera研究小組中提出的。我不知道包裝物品,所以我做了一些研究,發現兩種不同的樣式,沒有關於親和物的指導。就個人而言,我不介意反引號(如果調用恰好是Scala中的關鍵字的Java函數(例如'yield'),則無論如何都需要反引號)。 –