scala> val a = Int
a: Int.type = object scala.Int
scala> val a = String
<console>:11: error: object java.lang.String is not a value
val a = String
^
爲什麼沒有斯卡拉圍繞java.lang.String
創建一個薄包裝爲了使String
有價值?當一種主要類型(String
)不能用於表達式或傳遞給函數或從函數返回時,是不是非常嚴格?爲什麼字符串不是一個值?
*當主表達式中的某個主類型(字符串)不能用於表達式或傳遞給函數或從函數返回時,它的限制性不是很大嗎?*爲什麼會這樣假設?不知道'String'綁定了什麼值試圖傳達 –
@YuvalItzchakov我習慣於動態類型的語言(例如我可能想要在運行時驗證某些東西的類型)。我猜測在靜態語言中,將類型存儲在變量中不是很有用/常見(因爲類型在編譯時已知)?也就是說,'val a = Int'在scala中是有效的;所以可能至少有一些用途呢? – max
您可以執行'val tpe = typeOf [String]'或'val cls = classOf [String]'。並且'val a = Int'是有效的,因爲Int是Int類型的伴侶對象。 – adamwy