Понимание синтаксиса Scala - PullRequest
       34

Понимание синтаксиса Scala

0 голосов
/ 29 августа 2018

У меня есть код ниже, и я хотел знать, что означает Seq[String] = List()? Означает ли это, что он берет последовательность строк и преобразует ее в List()?

def somefuncname(input: Seq[String] = List()): Unit = {
  //Some Code
}

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

ввод имеет тип Seq [String] и имеет значение по умолчанию пустого списка (List ()). Наличие значения по умолчанию означает, что если вы вызовете функцию без передачи аргумента, она получит значение по умолчанию

0 голосов
/ 29 августа 2018

Сначала попытайтесь понять подпись функции ниже.

def somefuncname(input: Seq[String]): Unit = {
  //Some Code
}

Приведенный выше код является объявлением функции. Это функция, которая принимает 1 аргумент с именем input, который имеет тип Seq[String]. Это означает, что он принимает последовательность или список строк в качестве входных данных и ничего не возвращает Unit

Теперь, что означает =? 1010 *

= после входного аргумента функции означает default value для аргумента функции. Если вы не заинтересованы в передаче пользовательской «последовательности строк», вы можете положиться на аргумент по умолчанию уже переданного.

Теперь, что означает List()

List() возвращает последовательность из 0 элементов или пустую последовательность. Это означает, что функция принимает пустые элементы в качестве аргумента по умолчанию

в качестве альтернативы вы также можете передать Seq() в качестве аргумента по умолчанию. Это также означает пустую последовательность

def somefuncname(input: Seq[String] = Seq()): Unit = {
 //Some Code
}

Теперь, чтобы использовать функцию любым из следующих способов

  1. somefuncname() // Теперь input - пустая последовательность строк

  2. somefuncname(Seq("apple", "cat"))

  3. somefuncname(List("apple", "cat"))

...