我刚刚开始学习来自c ++/java背景的typescript/Angular,之前从未接触过任何Web开发的东西.我用一些FormControls写了一小段代码,有人提出了我不明白的建议改进.
代码如下:
this.myFormData = { ...data };
this.myForm.controls['name'].setValue(this.myFormData.name);
this.myForm.controls['address'].setValue(this.myFormData.address);
this.myForm.controls['age'].setValue(this.myFormData.age);
this.myForm.controls['gender'].setValue(this.myFormData.gender);
this.myForm.controls['mailing_list'].setValue(this.myFormData.mailing_list);
Run Code Online (Sandbox Code Playgroud)
我被告知我应该改为:
this.myFormData = { ...data };
const formControls = this.myForm.controls;
formControls['name'].setValue(this.myFormData.name);
formControls['address'].setValue(this.myFormData.address);
formControls['age'].setValue(this.myFormData.age);
formControls['gender'].setValue(this.myFormData.gender);
formControls['mailing_list'].setValue(this.myFormData.mailing_list);
Run Code Online (Sandbox Code Playgroud)
原因是它会节省内存.我质疑这一点,认为这可能是一些过早的优化,但同行评审员确信每次访问'this'并搜索'myForm'并获得'控制'是不好的做法,说明软件开发的DRY原则.
我还在学习,所以我想我应该只是让评论者说出来,但我真的想了解发布的例子中的差异以及为什么一个比另一个更好.我在网上搜索了答案,但我没有取得任何成功(可能是由于不知道要搜索的技术术语?).
对新手的解释会很棒或链接到我能找到答案的地方也会有所帮助.
我正在编写一个小的c ++应用程序来包装opencv haar训练函数(即cvCreateTreeCascadeClassifier).该函数将整个输出加载到控制台,我希望解析此输出,以便我可以在我的代码中填充各种变量.
我想使用的函数不是实际的openCV库的一部分; 相反,它必须使用我的代码构建作为项目的一部分.函数的所有输出都是通过printf输出的.
问题:是否可以在最终出现在控制台上之前拦截printf语句?我已经设法使用freopen重定向它们,但这似乎有点笨拙,因为我需要解析文件然后在函数调用完成后删除它.此外,该功能可能会运行几个小时(甚至可能是几周!),因此如果文件的大小也经常被附加,那么文件的大小可能会成为问题.
要求:我需要这个应用程序是c ++并在Windows和Linux上运行(但如果需要,条件编译语句没有问题).我还希望能够在控制台上看到我的cout和cerr消息(只是不是printf).
我的谷歌搜索已经取消了我的生活意愿!任何人都可以通过代码示例或指向我应该寻找答案的地方的指针帮助解决方案吗?
谢谢
我正在尝试将我的一个开发盒从 centos 8 迁移到 RHEL9。我严重依赖 docker,并注意到当我尝试在 RHEL 机器上运行 docker 命令时,它安装了 podman-docker。事情似乎进展得很顺利。我能够使用我已经知道的 docker 命令毫无问题地提取图像、启动、构建、提交新版本。
我遇到的问题是我似乎无法通过 docker 套接字(这似乎是 podman 的链接)与其交互。
如果我运行 docker 命令:
[@rhel9 ~]$ docker images
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redhat/ubi9 dev_image de371523ca26 6 hours ago 805 MB
docker.io/redhat/ubi9 latest 9ad46cd10362 6 days ago 230 MB
Run Code Online (Sandbox Code Playgroud)
它按预期列出了我的图像。我应该也可以运行:
[@rhel9 ~]$ curl --unix-socket /var/run/docker.sock -H 'Content-Type: application/json' http://localhost/images/json | jq .
% Total % Received % Xferd Average Speed Time Time …Run Code Online (Sandbox Code Playgroud) 为什么报告is_regular_file中的那个函数std::filesystem对于符号链接来说是正确的?我查看了该调用的文档,但找不到原因,并且 cppreference 上的示例表现出相同的行为。
举个例子,如果我们看一下二进制文件pidof;它作为符号链接存在/usr/sbin/pidof并正确标记为符号链接,如下所示stat:
[@rhel9 ~]$ stat /usr/sbin/pidof
File: /usr/sbin/pidof -> /usr/bin/pidof
Size: 14 Blocks: 0 IO Block: 4096 symbolic link
Device: fd00h/64768d Inode: 34952482 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:bin_t:s0
Access: 2024-02-05 15:46:24.124158991 +0000
Modify: 2023-01-28 09:40:21.000000000 +0000
Change: 2023-05-09 17:34:59.432002380 +0100
Birth: 2023-05-09 17:34:59.432002380 +0100
Run Code Online (Sandbox Code Playgroud)
如果我们点击链接并运行stat它:
[@rhel9 ~]$ stat /usr/bin/pidof
File: /usr/bin/pidof
Size: 23760 Blocks: 48 IO Block: …Run Code Online (Sandbox Code Playgroud)