小编mil*_*ose的帖子

有没有办法关闭Unix套接字只能读或写?

有没有办法只关闭TCP套接字的"一端"来干净地指示连接的一端写完连接?(就像你在每个Unix管道教程中使用管道一样.)或者我应该使用像哨兵值这样的带内解决方案?

unix sockets

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

骰子滚动程序在每次运行时生成相同的随机数序列

我写了一个程序,用一个用户指定的边数滚动模具.问题是,它太可预测了.

我正在使用CodeBlocks IDE,编译器是GCC.该程序可以很好地编译为调试和发布版本,但无论我选择什么构建选项,可执行文件每次运行时都会返回相同的值.我不能拥有它,因为它的预期用途是作为桌面RPG工具,如果聪明的玩家知道掷骰子的模式,它会相对容易作弊.

解决此问题的最简单方法是什么?

这是来源:

#include <iostream>     /* for input and output */
#include <cstdlib>      /* for random numbers */

using namespace std;

void rolldie() {
    cout << "How many sides to the die?" << endl << "D";
    int die;
    cin >> die;
    int roll = rand() % die +1;
    cout << endl << "The die rolled " << roll << endl << endl <<  "Roll another? (Y for yes, anything else for no; Capitalization counts) ";
}

int main() …
Run Code Online (Sandbox Code Playgroud)

c++ windows random mingw codeblocks

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

为什么Object.create()如此冗长?

Object.create是JavaScript的一个很好的补充,因为它更多地依赖于JS的原型性质.但是,我不禁发现函数的第二个参数的语法过于冗长,退一步.

例如,如果我想创建一个对象,并在派生对象中指定一个新属性,我需要在属性对象中包含该属性值,无论我是否对额外功能感兴趣.

所以,这很简单:

 o = Object.create({}, { p: 42 })
Run Code Online (Sandbox Code Playgroud)

现在变成:

 o = Object.create({}, { p: { value: 42 } }) 
Run Code Online (Sandbox Code Playgroud)

显然这是一个简单的例子,但对我来说,冗长是不必要的,应该是可选的.

有没有人理解要求属性对象的决定?您对新语法的要求有何看法?

注意:我知道有一些简单的解决方案可以克服这个要求.

javascript ecmascript-5

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

从所述函数中定义的另一个函数中更改函数的局部变量.Python

有没有办法从所述函数中定义的函数访问函数的局部变量?Y是一个带字符串的元组,我想要满足条件时所有的大写字母与下一个y中的项目保持相同.我试图使用内置函数global,但我想这只适用于全局变量.

def cap_sentence(y):  
    caps = "on"  
    def func(x):  
        if caps == "on"
            caps = "off"
            return x.capitalize()
        elif "." in x:
            caps = "on"
    return tuple(map(func, y))
Run Code Online (Sandbox Code Playgroud)

python variables global function local

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

可以为空的日期时间值

一个能DateTime值是NULL

我有这个代码:

从这里我继承了我的变量

namespace Transakcija
{
     public class Line
     {
        public System.DateTime DateOfProduction { get; set; }
     }
}
Run Code Online (Sandbox Code Playgroud)

然后为每个循环:

foreach (var rw_det in dt_stavke.Rows)
{
    var list = new List<Transakcija.Line>();
    var l = new Transakcija.Line();

     //DateOfProduction
    if (rw_det["DPRO02"].ToString().Length <= 0)
    {
        l.DateOfProduction = default(DateTime);
    }
    else
    {
        l.DateOfProduction = new DateTime();
        prod_date = rw_det["DPRO02"].ToString();
        DateTime pro_date = DateTime.ParseExact(prod_date, "dd.MM.yyyy", CultureInfo.InvariantCulture);
        string p_date = pro_date.ToString("yyyy-MM-dd");
        l.DateOfProduction = DateTime.Parse(p_date);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以该值l.DateOfProduction必须为null.我试过这个:

DateTime? dt = …
Run Code Online (Sandbox Code Playgroud)

c#

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

新手javascript,如何编写反向迭代?

我目前正在我的大学上学习CIS课程,其中一个项目是javascript.它被分成两个不相关的部分,我能够做第二部分,但我被困在第一部分.我的教授希望我写一个迭代,它会以相反的顺序显示我在提示屏幕中写的任何名字.因此,如果我写"约翰史密斯",它将显示"受害者nhoj".问题是我不知道如何写它.

<html>
   <body>
      <script>
         var namIn = window.prompt("Enter name:" );  
         var namAr = namIn.split("");  
         var namArLen = namAr.length;
         document.write(namAr + "<br /> Length: " + namArLen);
     </script>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何在 Selenium 中使用 CSS 选择器找到非根元素的直接后代?

我正在尝试为以下内容重用已找到的 WebElement<table>来搜索其后代和直接后代:

<html>
    ...
    <table id="tbl">
        <tbody>
            <tr>
                <td>
                    <div>foo</div>
                </td>
            </tr>
            ...
            <tr><td><button class="btnDefault"/></td></tr>
        </tbody>
    </table>
    ...
</html>
Run Code Online (Sandbox Code Playgroud)

这个表可能包含嵌套表 - 也可能不包含,我只是不想涉足整个事情,我宁愿使用更具体的选择器,保证做我想做的事。我需要的一些元素没有合理的 ID,我想使用选择器查找它们:

#tbl1 > tbody > tr:first-child > td:first-child > div
#tbl1 > tbody > tr > td > button.btnDefault
Run Code Online (Sandbox Code Playgroud)

为了使代码减少重复并可能更快,我想缓存该<table>元素:

var table = driver.FindElement(By.Id("tbl"));
var div = table.FindElement(By.CssSelector("> tbody > tr:first-child > td:first-child > div"));
var button = table.FindElement(By.CssSelector("> tbody > tr > td > button.btnDefault"));
Run Code Online (Sandbox Code Playgroud)

这在第二个和第三个查询中作为无效的 CSS 选择器爆炸。这是正确的,但话说回来,标准 CSS 语法并不意味着从特定范围进行搜索。是否有某种构造可以用作这里查询的根?

css c# selenium

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

如何在构建 Docker 镜像时恢复 Postgresdump?

我试图避免在我的工作流程中触及共享开发数据库;为了使这更容易,我想在我的磁盘上为我需要的模式定义 Docker 镜像。然而,我在制作一个 Dockerfile 时遇到了困难,该文件将创建一个已恢复转储的 Postgres 映像。我的问题是在构建 Docker 映像时,Postgres 服务器没有运行。

在 shell 中的容器中乱搞时,我尝试手动启动容器,但我不确定这样做的正确方法是什么。/docker-entrypoint.sh似乎什么也没做,我不知道如何“正确”启动服务器。

所以我需要做的是:

  • 以“FROM postgres”开头
  • 将转储文件复制到容器中
  • 启动PG服务器
  • 运行psql以恢复转储文件
  • 杀死PG服务器

(我不知道的步骤用斜体表示,其余的很容易。)

我想避免的是:

  • 在现有容器中手动运行恢复,整个想法是能够在不同的数据库之间切换,而无需接触应用程序配置。
  • 保存恢复的映像,我希望能够使用不同的转储轻松地为数据库重建映像。(另外,不可重复的镜像构建也不是 Docker 的感觉。)

postgresql database-backups docker

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

如何在 Angular 中将标签与其外部的表单字段关联起来?

假设我正在 *ngFor 循环中创建标签和表单字段,如下所示:

应用程序组件.ts

export class AppComponent  {
  items = ['aaa', 'bbbbbb', 'ccccccccc']
}
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

<div class='form'>
  <ng-container *ngFor="let item of items">
    <label>{{item|uppercase}}:</label>
    <input [value]="item"/>
  </ng-container>
</div>
Run Code Online (Sandbox Code Playgroud)

(在 StackBlitz 上查看:https://stackblitz.com/edit/angular-ptwq6t

有没有一种方法可以将这些“动态”标签和输入清晰地相互关联?如果我做:

<label for="field" >{{item|uppercase}}:</label>
<input id="field" [value]="item"/>
Run Code Online (Sandbox Code Playgroud)

Angular 只是逐字重复forid属性,并且所有标签都指向第一个输入字段。

有没有什么方法可以使用 Angular 的组件标识,或者我是否坚持自己生成 UUID,或者自己保证 ID 的唯一性?

我无法将输入嵌套在标签内,因为我必须重用一些已经实现的 CSS,这些 CSS 不需要这种结构,但仍然希望拥有适当的标签带来更好的可用性。

javascript forms typescript angular

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

您可以在没有 Yarn 的计算机上“零安装”使用 Yarn2 PnP 吗?

我正在使用 Yarn 2 的“零安装”工具作为一个小工具来解决我老板的随机过敏问题。npm i(他对必须在克隆的存储库上运行才能使其工作的期望感到不满,并坚持认为node_modules引入版本控制在某种程度上并不是一个糟糕的想法;所以我想以此为借口偷偷溜进 Yarn 并阻止他为其提供动力。)

据我了解,“零安装”基本上意味着 Yarn 试图使将依赖项安装状态放入 VCS 中实际上是可行的。然而,要运行实际的应用程序,Yarn 需要用其 PnP 机制替换 Node 的依赖解析。对于从 Yarn 脚本运行的 Node 实例,这种情况会自动发生,但运行 Yarn 脚本需要 Yarn 可用。(请记住,我们正在努力解决某些人对安装东西固执己见的问题。)

我所拥有的最好的办法就是让我的start剧本成为npx yarn node app.js,但这感觉不必要地复杂;毕竟,在 Yarn 2 中,工具本身存储在其中,.yarn/releases并且全局yarn命令使用它,但这是一些捆绑器输出的巨大缩小块,我不知道如何开始调用它。

node.js yarnpkg yarnpkg-v2

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