2016-11-15 70 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组件,如上所示。