JavaScript: какой смысл RegExp.compile ()?

К сожалению, для вас CGPoint не является объектом Objective-c. Это структура c. если вы дважды щелкаете по Apple на CGPoint, вам следует перейти к определению

struct CGPoint {
    CGFloat x;
    CGFloat y;
};
typedef struct CGPoint CGPoint;

. Если вы хотите сохранить CGPoint в NSArray, вам нужно сначала обернуть их. Вы можете использовать NSValue для этого или написать свою собственную обертку.

см. . Преобразование CGPoint в NSValue.

. РЕДАКТИРОВАНИЕ> Для каждого вызова метода target-c требуются небольшие накладные расходы, а создание и уничтожение объектов включает в себя множество вызовов метода, прежде чем они даже используются. для всего. Вы не должны беспокоиться об этом обычно, но для очень маленьких объектов, которые инкапсулируют мало поведения и имеют короткий срок службы, это может повлиять на производительность. Если бы Apple использовала объекты для всех точек, прямоугольников, размеров и даже целых, плавающих и т. Д., Производительность была бы хуже.

51
задан Vilx- 19 May 2009 в 09:07
поделиться

2 ответа

RegExp (). Compile ( ) устарел . По сути, он такой же, как и конструктор, поэтому я предполагаю, что он устарел. В настоящее время вам нужно использовать только конструктор.

Другими словами, раньше вы могли это делать:

var regexp = new RegExp("pattern");
regexp.compile("new pattern");

Но в настоящее время это ничем не отличается от простого вызова:

var regexp = new RegExp("pattern");
regexp = new RegExp("new pattern");
87
ответ дан 7 November 2019 в 10:06
поделиться

Насколько я могу судить, все, что RegExp.compile делает, это заменяет базовое регулярное выражение объекта RegExp. Я думаю, что компиляция могла иметь значение в прошлом, но все современные JS-движки «компилируют» регулярное выражение при первом вызове и кешируют эту «скомпилированную» версию.

3
ответ дан 7 November 2019 в 10:06
поделиться
Другие вопросы по тегам:

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