Сделайте выбор, если Вы получаете результат, обновляете его, в противном случае создаете его.
Я сделал нечто подобное много лет назад для системы полнотекстового поиска. В моем случае каждое проиндексированное слово генерировало запись, которая состояла из номера записи (идентификатора документа) и номера слова (с таким же успехом можно было бы сохранить смещения слов), которые необходимо было сжать как можно сильнее. Я использовал технику дельта-сжатия, в которой использовался тот факт, что одно и то же слово может встречаться в документе несколько раз, поэтому номер записи часто не нужно было повторять вообще. А дельта смещения слова часто умещается в пределах одного или двух байтов. Вот код, который я использовал.
Поскольку он написан на C ++, код может быть бесполезен для вас как есть, но может быть хорошей отправной точкой для написания подпрограмм сжатия.
Прошу прощения за венгерскую нотацию и магические числа, разбросанные в коде . это не локальная переменная или аргумент этой функции. Повышение стоимости свободная переменная, которая была связана (закрыто) с закрытием.
Возвращаясь к
def filesEnding(query: String) =
filesMatching(_.endsWith(query))
Неявная функция x => x.endsWith (query)
- это функция первого класса, которой присваивается значение первого класса сопоставитель
и _ .ndsWith ()
закрывается над запросом
, аналогично тому, как 3 закрывает a
в ( добавить 3)
. (add3 4)
эквивалент выполняется сопоставителем (file.getName)
.
Править : Сложная часть - это функция в Scala, называемая анонимными функциями синтаксиса заполнителя. Используя _
вместо отправителя или параметра, Scala автоматически создает анонимную функцию, которую мы можем рассматривать как лямбда-выражение.
Например,
_ + 1 creates x => x + 1
_ * _ creates (x1, x2) => x1 * x2
_.endsWith(query) creates x => x.endsWith(query)
Внутри функции x => x.endsWith (запрос)
,
http://michelf.com/projects/multi-safari/
Он делает именно то, что вы хотите. Он набрал 55 баллов на acid3, на всякий случай, если вы все еще параноик.
Вы можете загрузить несколько версий Safari 2/3, которые содержат правильную версию WebKit. Установка не производится, вы просто можете перетащить ее в папку «Приложения», как и ночные сборки WebKit.
http://discussions.apple.com/message.jspa?messageID=9593851#9593851
Кажется, не существует «официального» способа сделать это, и многие пользователи сообщают, что это сложно, если не невозможно.
Это сообщение на форуме должно помочь, если не решить вашу проблему, но YMMV.