Я хотел бы решить проблему,
Я сделал этот код, и у меня есть этот вывод
found : Unit
[error] required: Boolean
[error] for (data <- category(i)) {
я должен вернуться: (List[String], (List[String], (List[String])
Я решил использовать метод фильтра для реализации компактного кода.
Я не понимаю, почему это не работает. Почему код возвращает не bool, а Unit.
Я бы хотел, чтобы этот метод возвращал значение true, если хотя бы один элемент списка начинается с x, в противном случае метод должен возвращать значение false.
Спасибо
def classifiedColumns(columnNames: List[String]): (List[Column], List[Column], List[Column]) = {
val category = List(
List("t01", "t03", "t11", "t1801", "t1803"), // 1
List("t05", "t1805"), // 2
List("t02", "t04", "t06", "t07", "t08", "t09", "t10", "t12", "t13", "t14", "t15", "t16", "t18")) // 3
def get_info(x: String, i: Int, category: List[List[String]]): Boolean = {
for (data <- category(i)) {
if (data.startsWith(x)) true
else false
}
}
(columnNames.filter(x => get_info(x, 1, category)).map(column),
columnNames.filter(x => get_info(x, 2, category)).map(column),
columnNames.filter(x => get_info(x, 3, category)).map(column))
}
classifiedColumns(List("t0201", "t0408", "t0600084"))