讓我們回答這些問題 使用REPL,你能理解之前的一些介紹開始位越多,你在做什麼
scala> List("1", "2", "3", "33").map(x => x(0).toInt)
res1: List[Int] = List(49, 50, 51, 51)
地圖功能用於每一個元素變換,所以X地圖內將是「1」是第一次,「2」第二個,依此類推。
當您使用x(0)時,您正在訪問字符串中的第一個字符。
scala> "Hello"(0)
res2: Char = H
正如您在映射字符串後看到的類型是Int列表。你可以將它與一個Int進行比較,但它永遠不會等於。
scala> List(1, 2, 3) == 5
res0: Boolean = false
這非常像在Java中,當您嘗試
"Hello".equals(new Integer(1));
如果您想了解更多關於背後的平等問題的原因,你可以檢查出Why has Scala no type-safe equals method?
最後但並非最不重要,因爲List類中不少於1個,所以使用少於1個時出現錯誤。
附加: 如果你想知道,如果在列表中的第二個元素是小於2,你可以做
scala> val data = List("1", "10", "20")
data: List[String] = List(1, 10, 20)
scala> 5 < data(1).toInt
res2: Boolean = true
雖然這是一個有點怪,也許你應該變換字符串列表是更像一個案例類更類型,然後用更清晰的數據模型做你的業務邏輯。
一切都有成員'等於'。人們不喜歡那樣。這是一個Java的東西。 –