StringBuilder.Append()
метод намного лучше, чем использование + оператор. Но я нашел, что, при выполнении 1 000 конкатенаций или меньше, String.Join()
еще более эффективно, чем StringBuilder
.
StringBuilder sb = new StringBuilder();
sb.Append(someString);
единственная проблема с String.Join
состоит в том, что необходимо связать строки с общим разделителем. (Редактирование:) как @ryanversaw указанный, можно сделать строку разделителя. Пустой.
string key = String.Join("_", new String[]
{ "Customers_Contacts", customerID, database, SessionID });
Эта страница говорит:
Скрипты против функций
Скрипты - это m-файлы, содержащие MATLAB заявления. MATLAB `` функции '' другой тип м-файла. Самый большой разница между скриптами и функции в том, что функции имеют ввод и выходные параметры. Файлы сценария может работать только с переменными, которые жестко закодированы в их m-файл. Как вы можете видеть, функции намного больше гибкий. Поэтому они больше подходит для задач общего назначения это будет применяться к разным данные.
Скрипты полезны для задач это не меняется. Они тоже способ задокументировать конкретную последовательность действия, скажем, вызов функции с специальные значения параметров, которые могут быть трудно вспомнить.
Есть еще тонкие различия между скриптами и функции. Можно придумать сценарий как макрос клавиатуры: когда вы вводите название сценария, все команды, содержащиеся в нем, выполняются так же, как если бы вы набрали эти команды в командное окно. Таким образом, все переменные, созданные в скрипт добавлены в рабочую область для текущий сеанс. Кроме того, если любая из переменных в скрипте файл имеет то же имя, что и в ваше текущее рабочее пространство, значения эти переменные в рабочей области изменено действиями в скрипте. Это может быть использовано в ваших интересах. Это также может вызывать нежелательные побочные эффекты.
Напротив, функциональные переменные локально для функции. (Исключение в том, что можно объявить и использовать глобальные переменные, но это требует и явных действий со стороны пользователя.) Локальный объем функции переменные обеспечивают большую безопасность и гибкость. Единственный способ (кроме явно объявленные глобальные переменные) получать информацию в и из функция осуществляется через переменные в списках параметров.
Пример
Одно из основных различий между скриптом и функцией - это доступ к переменным в рабочей области. Например, предположим, что в рабочей области вы определили две переменные a = 10
и b = 20
. Эти переменные определяются в командной строке главного приглашения.
Файл сценария - display_mult.m
disp (a * b)
;
Набрав display_mult
, будет отображаться продукт из a
и b
в рабочей области, то есть 10 * 20
или 200
.
Но если вы определили функцию, вызывается display_mult определен в файле с тем же именем:
Функциональный файл - display_mult.m
function display_mult(a,b)
disp(a*b);
end
Вам нужно будет включить две переменные в качестве аргументов для вызова функции. Так, display_mult
не будет работать на этот раз, поскольку a
и b
не существует в рабочей области функции. Вам нужно будет включить их, запустив display_mult (a, b)
, чтобы отобразить желаемый результат.
Простое объяснение
Каждый оператор в сценарии эквивалентен их вводу в командном окне MATLAB. Вы просто заранее сохраняете их в файле!
Функция, с другой стороны, принимает аргументы и является «новой» рабочей областью, отдельной от основной рабочей области.
Примечание: end
в конце вызова функции не является обязательным, но мне нравится добавлять его, чтобы упорядочить работу. Конечно, если у вас есть несколько определений функций в файле, все они должны заканчиваться на end
. Также,