Функция не возвращает null, когда все элементы null

У меня есть функция, которая должна возвращать null, если все элементы массива null, однако вместо этого она возвращает значение 0.

    val ratio_pos_since_first = udf((lst: Seq[String]) => {
  val nonNullLst = lst.filter(_ != null).map(_.toDouble);
  val cntNotNull = nonNullLst.size.toDouble;
  val indexNNValue = lst.find(_ != null).map(lst.indexOf).getOrElse(0);
  Try(cntNotNull / (lst.size - indexNNValue)) match {
    case Success(value) => Some(value);
    case Failure(exception) => None
  };
})

Как я могу сделать так, чтоб функция возвращала null?


Ответы (1 шт):

Автор решения: Vasily802

Как-то так:

if (lst.forAll(_.isNull)) return null

Метод Seq, который возвращает true только, если каждый элемент отвечает предикату, и предикат который проверяет null.

→ Ссылка