strapplyc
в пакете gsubfn делает следующее:
> library(gsubfn)
>
> strapplyc(s, r)
[[1]]
[1] "1234" "567"
Попробуйте ?strapplyc
для получения дополнительной информации и примеров.
Связанные функции
1) Обобщение strapplyc
есть strapply
в одном пакете. Он принимает функцию, которая вводит захваченные части каждого совпадения и возвращает выход функции. Когда функция c
, она уменьшается до strapplyc
. Например, предположим, что мы хотим вернуть результаты как числовые:
> strapply(s, r, as.numeric)
[[1]]
[1] 1234 567
2) gsubfn
является другой связанной функцией в том же пакете. Это похоже на gsub
, за исключением того, что строка замены может быть функцией замены (или списком замещения или заменяющим прото-объектом). Функция замены вводит захваченные части и выводит замену. Замена заменяет совпадение во входной строке. Если используется формула, как в этом примере, правая часть формулы рассматривается как тело функции. В этом примере мы заменим соответствие на XY{#}
, где # в два раза соответствует номеру ввода.
> gsubfn(r, ~ paste0("XY{", 2 * as.numeric(x), "}"), s)
[1] "XY{2468}wz98XY{1134}"
UPDATE: добавлены примеры strapply
и gsubfn
.
С тех пор JdkSslClientContext
удерживается от использования, используйте io.grpc.netty.GrpcSslContexts
для создания io.netty.handler.ssl.SslContextBuilder
.
Примеры (никакой взаимный автор):
Клиент
InputStream trustCertCollection = new FileInputStream("certs/ca.crt");
SslContextBuilder builder = GrpcSslContexts.forClient();
builder.trustManager(trustCertCollection);
SslContext sslContext = builder.build();
Сервер
InputStream certChain = new FileInputStream("certs/server.crt")
InputStream privateKey = new FileInputStream("certs/server.pk8");
SslClientContextBuilder sslClientContextBuilder = SslContextBuilder.forServer(certChain, privateKey);
SslContext sslContext = GrpcSslContexts.configure(sslClientContextBuilder).build();
Также посмотрите официальные примеры: https://github.com/grpc/grpc-java/tree/2548bcd7c7afbbe4c6651ea96ba2b62aa336e276/examples/example-tls