Есть несколько вариантов, и ни один из них не является официальным правильным способом, и ни один из них не является действительно неправильным, хотя они могут передавать различную информацию на компьютер и другим, читающим ваш код.
Для данного Например, я думаю, что самым ясным вариантом будет предоставление значения по умолчанию для идентификации, в этом случае сделайте что-то вроде:
fooBar <- function(x, y=0) {
x + y
}
. Это самый короткий из показанных до сих пор параметров, а краткость может помочь в удобочитаемости (а иногда даже скорость выполнения). Понятно, что возвращаемое является суммой x и y, и вы можете видеть, что y не получает значение, которое будет 0, которое при добавлении x будет просто результатом x. Очевидно, что если используется что-то более сложное, чем добавление, тогда потребуется другое значение идентификатора (если оно существует).
Мне очень нравится в этом подходе, так как ясно, что значение по умолчанию используется при использовании функцию args
или даже посмотреть файл справки (вам не нужно прокручивать вниз до деталей, это прямо там в использовании).
Недостатком этого метода является то, что значение по умолчанию является сложным (требуется несколько строк кода), то это, вероятно, уменьшит читаемость, чтобы попытаться поместить все это в значение по умолчанию, а подходы missing
или NULL
станут намного более разумными.
Некоторые другие отличия между методами будут отображаться при передаче параметра другой функции или при использовании функций match.call
или sys.call
.
Итак, я думаю, что «правильный» метод зависит о том, что вы планируете делать с этим конкретным аргументом и какую информацию вы хотите передать читателям вашего кода.
Это:
var query = from something in someList where whereClause;
является сокращением для:
var query = someList.Where(something => whereClause);
Предполагая, что someList
является IEnumerable<Address>
, Where
относится к Enumerable.Where Extension Метод . Этот метод ожидает Func<Address, bool>
, который вы можете определить следующим образом:
Func<Address, bool> whereClause = address => address.Zip == 23456;
var query = someList.Where(whereClause);
Это встроенная функция LINQ. Просто используйте метод расширения Where.
См. Синтаксис запроса LINQ в сравнении с синтаксисом метода (C #) для получения дополнительной информации.