I have an array:
var arg = condColumnsKeys
with the elements
arg: Array[String] = Array(LOT_PREFIX, PS_NAME_BOOK_TEMPLATE_NAME, PS_NAME_PAGE_NAME, PS_NAME_FIELD_NAME)
Desired outcome is to get the string "LOT_PREFIX" and store it in var ccLotPrefix
My first attempt is
var arg = condColumnsKeys
var ccLotPrefix =
arg match {
case "L_PREFIX" => "L_PREFIX"
case "LOT_PREFIX" => "LOT_PREFIX"
case _=> "LOT_PREFIX"
}
But I get a type mismatch as it needs to match with Array[String]
command-4310537:4: error: type mismatch;
found : String("L_PREFIX")
required: Array[String]
case "L_PREFIX" => "L_PREFIX"
^
So my idea is to pack it into a for loop?
var j = (r.findAllIn(condValues).count(_ == "!"))
var arg = condColumnsKeys
for(j<-(0).to(j)) {
var ccLotPrefix =
arg match {
case "L_PREFIX" => "L_PREFIX"
case "LOT_PREFIX" => "LOT_PREFIX"
case _=> "LOT_PREFIX"
}
}
But I still don't get rid of the type mismatch. So, after some trial/error this can be achieved by
for(i<-(0).to(i)) {
if (arg(i) == "LOT_PREFIX")
ccLotPrefix = "LOT_PREFIX"
else if (arg(i) == "L_PREFIX")
ccLotPrefix = "L_PREFIX"
}
println(ccLotPrefix)
LOT_PREFIX
But is there a better way to achieve this? Because, obviously, you don't always know what's inside the array....