小编iPh*_*ian的帖子

Perl6搜索然后替换为子例程的输出

我已经整理了文档,但似乎找不到在perl6中执行此操作的方法。

在perl5中,我会做的(只是一个例子):

sub func { ... }

$str =~ s/needle/func($1)/e;
Run Code Online (Sandbox Code Playgroud)

即用对“ func”的调用输出替换“ needle”

regex evaluation replace string-substitution perl6

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

Clang-Format:重新组合字符串文字

有没有办法让 clang-format 来改变这个:

function_name("a very very "                | <-- column limit
              "very very "                  |
              "long string");               |
Run Code Online (Sandbox Code Playgroud)

进入这个:

function_name("a very very very very long"  |
              " string");                   |
Run Code Online (Sandbox Code Playgroud)

它会很高兴地打破超出限制的字符串文字,但我似乎无法让它重新组合。

c++ automated-refactoring clang-format

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

子例程参数为没有临时变量的键值对

在Perl中,我总是喜欢参数传递的键值对样式,

fruit( apples => red );

我做了很多:

sub fruit {
    my %args = @_;
    $args{apples}
}
Run Code Online (Sandbox Code Playgroud)

纯粹为了紧凑而且有多种方法可以做到这一点,有没有办法:

  • 访问键值对而不分配@_哈希?即一个声明?

  • 让子程序的参数自动成为哈希引用,也许通过子程序原型?

无:

  • 分配给临时变量 my %args = @_;

  • 让呼叫者通过引用传递,即fruit({ apples => red }); 纯粹为了美学


尝试

  • ${%{\@_}}{apples}

    尝试引用@_,将其解释为哈希引用,并通过键访问值.

    但我得到一个错误,它不是哈希引用.(它不是^.^)我正在考虑C,你可以在其中投射指针,并避免明确的重新分配.

  • 我也试过子程序原型

    sub fruit (%) { ... }

    ......但是这些论点@_像往常一样崩溃了.

perl hash subroutine subroutine-prototypes

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

缩小子项以适应父项

我有一个固定大小的 div,其子元素的数量可变。我事先不知道孩子们的尺寸。目标是缩小它们以适应父级。

例子:

.parent {
  width: 100px;
  height: 100px;
  border: 2px dashed green;
}
.parent * {
  max-width: 100%;
  max-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <img src="https://placehold.it/250x400" />
  <img src="https://placehold.it/300x250" />
</div>
Run Code Online (Sandbox Code Playgroud)

max-width等似乎单独将孩子缩小到不大于父母;第一个爆发之后的任何元素。

有想法将它们全部包含在一起吗?

html css

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

打字稿:使用打字重命名 obj 属性

我有时会使用一些实用程序 func (js),我希望打字能像这样工作:

// original js untypified
function prefixProperties(obj, prefix) {
    let out = {};
    for (let propt in obj) {
        out[prefix + propt] = obj[propt];
    }
    return out;
}

let x : { num: number, date: Date } = { ... };
let y = prefixProperties(x, 'old');
/*
be great if typeof y was:
{
    oldnum: number,
    olddate: Date,
};
*/
Run Code Online (Sandbox Code Playgroud)

或者最具体的是这样的功能。

我想过元组映射,但我想它们不会让您更改键的名称。

{
    [K in keyof T]: whatever
};
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics

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

Visual Studio中的C++数字分隔符

从命令行使用visual studio 2015.使用的选项:/std:c++14

每当我尝试编译

int num = 10'000'000;
Run Code Online (Sandbox Code Playgroud)

cl.exe说 warning: digit separators not enabled, apostrophe begins a character literal

我该如何启用它?

c++ literals visual-studio visual-c++ c++14

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

c ++ 17:仅标题:类静态变量错误

从C++ 17开始,我一直在尝试更简单的方法来获取类静态变量.我正在写一个仅限标题的库.显然inline,变量的新含义适用于此.

class thingy {
    static inline reporter rep;
};
Run Code Online (Sandbox Code Playgroud)

但我一直在收到运行时错误.

我正在使用Visual Studio 15.6.4

要测试,以下内容:

  • thingy 有一个静态成员变量
  • 该成员告诉您何时构建/破坏以及在何处
  • 应该构造和破坏一次
  • #include是否包含在两个.cpp文件中

foo.h中

#pragma once

#include <iostream>

using namespace std;

struct reporter {
    reporter() {
        cout << "reporter() - " << this << endl;
    }
    ~reporter() {
        cout << "~reporter() - " << this << endl;
    }
};

class thingy {
    static inline reporter rep;
};
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "foo.h"
int main() {}
Run Code Online (Sandbox Code Playgroud)

Foo.cpp中

#include "foo.h"
Run Code Online (Sandbox Code Playgroud)

最令人失望的是,它打印出来:

reporter() - 00007FF670E47C80
reporter() …
Run Code Online (Sandbox Code Playgroud)

c++ static-variables visual-c++ c++17

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

Mysql:前缀索引与索引

可以像普通索引一样使用mysql前缀索引吗?

如果有一些TEXT列,并且前缀索引的长度为例如1,则查询为:

SELECT * FROM table WHERE textcol = 'ab'

它会给我所有以'a'开头的行还是会检查整列值?

一般来说,我很想知道使用前缀索引时是否有任何警告.不考虑性能,如果任何查询必须以不同方式编写,或者客户端是否必须执行额外逻辑,则更多.

mysql indexing innodb

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

初始化自定义类的数组

我想初始化一个对象数组(人为的例子)

class StringPair {
    String a;
    String b;
    // constructor
}

StringPair p[] = {
    { "a", "b" },
    { "c", "d" }
};
Run Code Online (Sandbox Code Playgroud)

但javac抱怨java: illegal initializer for StringPair定义p

我该怎么写呢?

java arrays object

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

不能在Perl中取消引用标量

谁能告诉我为什么这个打印REF(*)而不是0

$a = 0;
$a = \$a;
print $$a . "\n";
Run Code Online (Sandbox Code Playgroud)

perl scalar reference

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

stdin和stdout共享任何资源吗?

标准输入和标准输出是否独立?

考虑父程序已启动子项,父项的标准输出附加到子项的标准输入,子项的标准输出附加到父项的标准输入.

        stdin       <- stdout 
parent                        child
        stdout ->      stdin
Run Code Online (Sandbox Code Playgroud)

如果孩子(异步地)不断地从其标准输入读取并将数据写入其标准输出,但是父母只是写入孩子的标准输入并且根本没有读取孩子的标准输出:

        stdin|     << stdout 
parent                       child
        stdout ==>==> stdin
Run Code Online (Sandbox Code Playgroud)

最终会出现堵塞吗?标准输入和标准输出是否共享任何类型的缓冲区?特别是通过C++ std::cin(istream)和std::cout(ostream),如果需要回答.标准是否要求他们做或不做这样的事情,还是让它留给实施?

会发生什么?

c++ terminal stdin stdout piping

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

从 C++ 向 QML 布局添加对象

我怎样才能从 C++ 中Rectangle动态地向带有 id 的那个添加更多的s root?例如,还有两个Rectangles 颜色redgreen?

主.qml:

Rectangle {
    id: root
}
Run Code Online (Sandbox Code Playgroud)

要在“root”下添加的典型 QML 对象:

Rectangle { color: "red"; width: 200; height: 200 }
Rectangle { color: "green"; width: 200; height: 200 }
Run Code Online (Sandbox Code Playgroud)

Qt Creator 生成main.cpp

int main(int argc, char *argv[]) { 
    QGuiApplication app(argc, argv);
    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/gui/main.qml"));
    viewer.showExpanded();    
    return app.exec()
}
Run Code Online (Sandbox Code Playgroud)

qt qml qt5 qtquick2

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