Это создает сценарии: управляйте и добавляет его к Вашему пути. Отметьте, необходимо создать папку сами. В следующий раз необходимо возвратиться к нему, просто ввести "сценарии": и хит входит, точно так же, как любая буква диска в Windows.
$env:path += ";$profiledir\scripts"
New-PSDrive -Name Scripts -PSProvider FileSystem -Root $profiledir\scripts
Если вы хотите вернуть что-то с unapply
, верните это внутри Some
. Возвращение Boolean
просто проверяет, может ли совпадение быть выполнено или нет.
Вот как переводится сопоставление с образцом:
str match {
case NumberMatcher(group) => println(group)
case _ => println("no")
}
Предполагая, что NumberMatcher
возвращает Option [.. .]
, он будет делать:
val r1 = NumberMatcher.unapply(str)
if (r1 != None) {
val group = r1.get
println(group)
} else {
println("no")
}
Если NumberMatcher
возвращает Boolean, тогда вы можете получить что-нибудь. В этом случае происходит следующее:
str match {
case NumberMatcher() => println("yes")
case _ => println("no")
}
становится
val r1 = NumberMatcher.unapply(str)
if (r1) {
println("yes")
} else {
println("no")
}
Обратите внимание, что это очень поверхностное объяснение. Соответствие регистрам может проверять константы, иметь дополнительные защитные условия, альтернативы, использовать unapply
рекурсивно, использовать unapplySeq
и т. Д. Здесь я только показываю очень базовое использование для ответа на конкретный вопрос.
Когда вы определили unapply
для возврата Boolean
, вы указали, что шаблон не нет подстановочных знаков для сопоставления (или привязки). Таким образом, оператор case для этого неэкстрактора должен быть case NumberMatcher => println (str)
, и давать ему переменную для заполнения неверно.
В качестве альтернативы, чтобы сделать case NumberMatcher (group) = > println (group)
вам необходимо определить unapply ()
, чтобы вернуть Option [String]
Взгляните на это Пример снова. Цитирую
Тип возврата неприменения должен быть выбран следующим образом:
* Если это просто тест, верните логическое значение. Например, case even ()
* Если он возвращает одно вложенное значение типа T, вернуть Option [T]
* Если вы хотите вернуть несколько подзначений T1, ..., Tn, сгруппируйте их в необязательном кортеже Option [(T1, ..., Tn)].