2016-11-15 73 views
0

目前我的系統已經爲用戶輸入兩個數字的能力,在尾部的最後一個數字被發現,回來後,我怎麼能得到的數據和數據2,只顯示有號碼,而不是SK1/SK3之前。目前我收到錯誤;斯卡拉不能解析符號

錯誤:(177,28)的值> =不是(字符串,整數) VAL最高=的成員,如果(數據> = DATA2){

//Compare 2 values 
    def mnuCompareTwoStocks(f: (String) => (String, Int)) = { 
    print("Stock > ") 
    val data = f(readLine) 
    print("Stock 2 > ") 
    val data2 = f(readLine) 
    val highest = if (data >= data2){ 
     println(data) 
    } 
    else 
    { 
     println(data2) 
    } 
    println(s"${data._1}: ${data._2} ${data2._1}: ${data2._2}") 

    } 

編輯: 工作成果

//Compare 2 values 
    def mnuCompareTwoStocks(f: (String) => (String, Int)) = { 
    print("Stock > ") 
    val data = f(readLine) 
    print("Stock 2 > ") 
    val data2 = f(readLine) 
    if (data._2 >= data2._2){ 
     println("The higher stock is " + data) 
    } 
    else 
    { 
     println("The higher stock is " + data2) 
    } 
    println(s"${data._1}: ${data._2} ${data2._1}: ${data2._2}") 

    } 
+0

讓它'VAL最高= IF(...)的數據別的data2' – rethab

+0

@rethab同樣的錯誤是發生 –

回答

3

您試圖比較類型爲(String,Int)的2元組。沒有簡單的比較運算符。

scala> ("a",3) > ("b",0) 
<console>:12: error: value > is not a member of (String, Int) 
     ("a",3) > ("b",0) 
      ^

你想的String佔先或Int

scala> ("a",3)._1 > ("b",0)._1 
res0: Boolean = false 

scala> ("a",3)._2 > ("b",0)._2 
res1: Boolean = true 
+0

是的,我想詮釋,因爲我可以比較他們,我已經編輯我的問題和錯誤 –

+0

如果你想用於比較的'Int'然後如圖所示提取它。 – jwvh

1

您的代碼中有幾個問題會導致您看到的錯誤。

首先,你有一個語法錯誤:打印出來的變量最高你想要的方式,你需要使用+字符串連接:println("The higher stock is " + highest)

其次,最高只中聲明你的if陳述,所以它超出了println陳述的範圍。您可以通過在範圍上宣佈它解決了這個問題:

... 
var highest = 0.0 
if(...){ 
    highest = ... 
} 
else { 
    highest = ... 
} 
println("The higher stock is " + highest) 

最後,也是最重要的,你的方法的整體設計並沒有真正意義的我。 ˚F是你的參數mnuCompareTwoStocks,這是一個功能從字符串轉換(字符串,整數)。那麼,爲什麼你對這個函數調用申請(通過f(readLine)),看似期待一個數字類型回來?甚至這個參數的目的是什麼?事實上,如果你想返回的元組,你需要比較值之前解壓數字分量:

val data = f(readLine) 
val data2 = f(readLine) 
if (data._2 >= data2._2) 
... 

我看到你編輯你的問題首先要解決的兩個問題。然而,現在你用你的if語句毫無意義地設置了val highest = Unit ...

無論如何,如果你想在它們之間進行數字比較,你應該解開元組的Int組件,如上所示。