Тернарные операторы и возврат в C

Другой альтернативой является использование метода mapPartitionsWithIndex, поскольку вы получите номер индекса раздела и список всех строк в этом разделе. Раздел 0 и строка 0 будут заголовком

val rows = sc.textFile(path)
  .mapPartitionsWithIndex({ (index: Int, rows: Iterator[String]) => 
    val results = new ArrayBuffer[(String, Int)]

    var first = true
    while (rows.hasNext) {
      // check for first line
      if (index == 0 && first) {
        first = false
        rows.next // skip the first row
      } else {
        results += rows.next
      }
    }

    results.toIterator
}, true)

rows.flatMap { row => row.split(",") }
20
задан kennytm 25 August 2010 в 13:53
поделиться

4 ответа

return - это инструкция. Таким образом нельзя использовать выражения внутри выражений.

33
ответ дан 29 November 2019 в 22:29
поделиться

Поскольку тернарная операция является выражением, и вы не можете использовать операторы в выражениях.

Вы можете легко использовать тернарный оператор в возврате.

return sum > 0 ? 1 : 0;

Или, как указал DrDipShit:

return sum > 0;
29
ответ дан 29 November 2019 в 22:29
поделиться

Потому что return - это инструкция, а не выражение. Вы также не можете выполнить int a = return 1; .

9
ответ дан 29 November 2019 в 22:29
поделиться

См. синтаксис тернарного оператора

expr1 ? expr2: expr3;

, где выражение1, выражение2, выражение3 — выражения;

Оператор ?: работает следующим образом выражение1 оценивается первым, если оно истинно выражение2 оценивается в противном случае оценивается выражение3.

поэтому в выражениях оператор return не может использоваться на языке C.

2
ответ дан 29 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: