问题列表 - 第287808页

有没有一种方法可以运行闭包而不进行测试?

我在课堂上经常使用这个方案

typealias nullHandle = ()->Void
var runOnLoad: nullHandle?
Run Code Online (Sandbox Code Playgroud)

因此,当我创建该类的实例时,我会...

let object = MyClass()
object.runOnLoad = { ()->Void in
  // do something
}
Run Code Online (Sandbox Code Playgroud)

在类内部,我总是必须在运行该闭包之前执行此操作:

if self.runOnLoad != nil {
  self.runOnLoad()!
}     
Run Code Online (Sandbox Code Playgroud)

因为我不能保证它runOnLoad不是nil,如果我尝试运行nil runOnLoad,它将崩溃。

在使用Objective-C编程一个世纪之后,我是个新手。我正在迅速使用此模式,因为这是我在Objective-C中要做的。

在Swift中有没有更好的方法来完成这件事?

谢谢

closures optional swift

2
推荐指数
1
解决办法
37
查看次数

如何在不使用 cv2.getRotationMatrix2D 的情况下手动旋转图像

我想在不使用内置 cv2 库的情况下旋转图像。所以我看到了这个方程

但我不知道如何将其应用到我的代码中。

//编辑

python opencv

2
推荐指数
1
解决办法
7870
查看次数

如何使用 Autofac 模块配置 MassTransit?

我正在尝试使用 Autofac(最新的 NuGet 包)设置 MassTransit,但似乎无法在该ContainerBuilder级别注册消费者。有没有人设法将 MassTransit 与 Autofac 一起使用,尤其是模块?

在下面的示例中,无法解析 DoSomethingConsumer,除非我取消注释该x.AddConsumer行并在构建器上注释注册。

           builder.RegisterType<BusControlHostedService>().As<IHostedService>();
            builder.RegisterType<DoSomethingConsumer>().AsSelf().AsImplementedInterfaces();

            builder.AddMassTransit(x =>
            {
                //x.AddConsumer<DoSomethingConsumer>();

                x.AddBus(componentContext => Bus.Factory.CreateUsingRabbitMq(cfg =>
                {
                    cfg.Host("host", "vhost", h =>
                    {
                        h.Username("user");
                        h.Password("password");
                    });

                    cfg.UseExtensionsLogging(componentContext.Resolve<ILoggerFactory>());

                    cfg.ConfigureEndpoints(componentContext);

                }));

                x.AddRequestClient<DoSomethingRequest>();
            });
Run Code Online (Sandbox Code Playgroud)

https://masstransit-project.com/MassTransit/usage/containers/autofac.html 上的文档似乎是错误的。.AddConsumer构建器上没有扩展方法。

我希望从模块注册消费者,并能够按照约定(如上面的示例)或使用.RegisterEndpoint.

对此的任何帮助将不胜感激。

masstransit autofac autofac-module

5
推荐指数
1
解决办法
601
查看次数

Freeradius:请求没有用户密码属性的休息模块

我正在尝试使用休息后端进行身份验证来设置半径服务器。我以以下项目为例:https : //github.com/fgsants/REST-API-FreeRADIUS

一切都已经设置好了,如果我使用以下命令来模拟在 radius 上的登录,一切都可以正常工作:

radtest bar passwd 127.0.0.1 10 testing123

其余后端接收/user/:username/mac?action=authorize然后/user/:username/mac?action=authenticate&password=passwd.

当我将 AP 配置为使用此半径服务器时,请求似乎与预期不同并且身份验证失败。这是尝试通过 AP 登录时半径服务器的输出:

(0) Received Access-Request Id 105 from 172.21.0.1:46358 to 172.21.0.3:1812 length 126
(0)   User-Name = "bar"
(0)   NAS-IP-Address = 192.168.0.21
(0)   NAS-Identifier = "RalinkAP1"
(0)   NAS-Port = 0
(0)   Called-Station-Id = "1A-0D-2C-1B-49-11"
(0)   Calling-Station-Id = "D4-9A-20-70-F4-0E"
(0)   Framed-MTU = 1400
(0)   NAS-Port-Type = Wireless-802.11
(0)   EAP-Message = 0x0201000801626172
(0)   Message-Authenticator = 0xbffda6639904c9026259be2a45b378c4
(0) # Executing section authorize from …
Run Code Online (Sandbox Code Playgroud)

freeradius

2
推荐指数
1
解决办法
4797
查看次数

使用libiconv时iconv将重音符号与字母分开

我正在尝试制作一个函数,该函数将返回不带重音的给定字符串,但是iconv的//TRANSLIT选项似乎只将重音和字母分开,而没有去除重音。

这是我的功能:

<?php
function strRemoveAccents($str)
{
    return iconv(mb_detect_encoding($str), 'us-ascii//TRANSLIT', $str);
}
Run Code Online (Sandbox Code Playgroud)

这是我的结果:

  • 测试1

    • 输入:雅典
    • 预期产量:雅典娜
    • 电流输出:Ath`enes
  • 测试2

    • 输入:Gda?sk
    • 预期产量:格但斯克
    • 电流输出:格达斯克
  • 测试3

    • 输入:niño
    • 预期产量:nino
    • 电流输出:ni〜no

一些精度:

  • mb_detect_encoding 对于我的所有测试,返回“ UTF-8”,并且用返回值替换该函数不会更改任何内容。
  • 我的语言环境当前设置为 LC_COLLATE=C;LC_CTYPE=French_France.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C
  • 我也尝试将语言环境更改为en_US.UTF-8(我检查过:语言环境已成功更新),但是函数的返回值仍然相同
  • 在Macbook上使用默认语言环境设置测试c/fr_FR.UTF-8/c/c/c/c的问题仍然相同。
  • 我可以删除重音符号,但是由于我将在整个句子中使用该方法,因此我不想删除多余的撇号。
  • 编辑:使用此沙箱进行测试时,我得到了想要的结果。

我可能会丢失一些东西,但我看不到。

编辑:正如@jasonwubz在回答中提到的那样,仅在使用libinconv时出现问题,而在使用glibc时不存在。使用这些实现中的任何一种时,是否有办法使其工作?

php character-encoding iconv

5
推荐指数
2
解决办法
120
查看次数

ADB推送错误:复制失败:不是目录

所以我只是想修改家庭成员手机上的主机文件。我已将手机置于调试模式并提取主机文件,对其进行编辑,但是当我尝试推送它时,我收到消息“adb:错误:无法将‘D:/hosts\hosts’复制到‘/system’ /etc/hosts/hosts':远程无法创建文件:不是目录”

这是我使用过的命令:

adb pull /system/etc/hosts D:\hosts
/system/etc/hosts: 1 file pulled. 0.0 MB/s (56 bytes in 0.003s)

adb push D:\hosts /system/etc/
adb: error: failed to copy 'D:\hosts\hosts' to '/system/etc/hosts/hosts': remote couldn't create file: Not a directory
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用 android debug/adb,我读过的其他内容都没有帮助。提前致谢。

编辑:所以我取得了一些进展。我意识到主机文件不在主机目录中,所以我将其更改为adb push D:\hosts /system/etc仍然不起作用,但adb push D:\hosts\hosts /system/etc给了我响应adb: error: failed to copy 'D:\hosts\hosts' to '/system/etc/hosts': remote couldn't create file: Read-only file system 所以看起来我的问题现在在adb shell chmod

EDIT2:所以经过一些更多的研究,我在 Android 上发现了这个只读文件系统。当我尝试时,mount -o rw,remount /system我得到了mount: …

android push file hosts adb

5
推荐指数
0
解决办法
5483
查看次数

nextjs 中的 2 级嵌套路由

我仔细阅读了下一个路由系统的文档。它只提到我可以像这样实现动态路由:

http://localhost:3000/level1/dynamicSlug

但我正在努力实现这样的目标:

http://localhost:3000/level1/level2/dynamicSlug

我也想动态创建 level2

非常感谢 !

reactjs next.js

6
推荐指数
3
解决办法
7994
查看次数

给定 2 个字符串,仅删除一位数字以使 1 个字符串按字典顺序更小

我正在尝试解决 Java 中字符串操作的编码问题。问题是

给定两个由数字和小写字母组成的字符串 S 和 T,您只能从任一字符串中删除一位数字,计算有多少种删除方式可以使 S 按字典顺序小于 T。

我自己想出了这个测试用例。如果 s = '3ab' 且 t = 'cd',则返回 1。如果 s = '123ab' 且 t = '423cd',则返回 6。

我的想法是使用 2 个 for 循环并通过检查字符是否为数字来遍历每个字符串,将其删除并与其他字符串进行比较。

private static int numSmaller(String s, String t){
    int ways = 0;

    for(int i = 0; i < s.length(); i++){
        StringBuilder sbs = new StringBuilder(s);
        if(Character.isDigit(s.charAt(i))){
            sbs.deleteCharAt(i);
            String sub = sbs.toString();
            if(sub.compareTo(t) < 0) {
                ways++;
            }
        }
    }

    for(int i = 0; i < t.length(); i++){
        StringBuilder sbt …
Run Code Online (Sandbox Code Playgroud)

java string lexicographic-ordering

5
推荐指数
1
解决办法
1万
查看次数

如何使用pysftp检查SFTP中是否存在文件?

我在 etl 工作(第一次),我需要从客户端的 SFTP 中提取一些文件。我的问题是,文件数量是可变的,所以我需要检查,如果文件中存在,并得到它,该文件格式,如“_文件YYYY-MM-DD -number- ñ ”,其中YYYY-MM-DD是当前的日期和n是文件的编号,因此如果有 7 个文件,我必须查找:

  • file_2019-08-25-number-1
  • file_2019-08-25-number-2

直到现在我发现我可以做这样的事情

cnopts = pysftp.CnOpts()
with pysftp.Connection(host=host, port=port, username=username, password=password, cnopts=cnopts) as sftp:
    files = sftp.listdir(directory)
Run Code Online (Sandbox Code Playgroud)

我如何在那里的文件中找到?

python sftp pysftp

1
推荐指数
1
解决办法
4492
查看次数

如何修复等待 kubelet 将控制平面作为静态 Pod 从目录“/etc/kubernetes/manifests”启动时的超时

我正在尝试在 Centos 7 上安装 Kuberentes 1.15,但 Kubeadm init 在等待 kubelet 作为静态 Pod 从目录“/etc/kubernetes/manifests”启动控制平面时一直失败

[root@kmaster manifests]# kubeadm init
--apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16 [init] Using Kubernetes version: v1.15.3 [preflight] Running pre-flight checks
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
        [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.1. Latest validated version:
18.09 [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take …
Run Code Online (Sandbox Code Playgroud)

kubernetes

2
推荐指数
1
解决办法
8727
查看次数