小编chr*_*s01的帖子

打字稿:要分类的对象

可以说我有一个类C和一个对象O的实例(来自JSON)。

class C {
  str:string;
  num:number;
}

var o = JSON.parse ("{\"num\":123, \"str\":\"abc\"}");
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以用o分配/初始化C的实例,并且它可以检查未定义的值以及类型,而无需我自己在复制构造函数/函数中执行此操作?

如果值丢失/未定义或类型不匹配,我想获取错误或异常。

谢谢!

javascript typescript

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

Perl XS:内存管理

我是Perl XS的新手.

我的简单测试函数获取一个字符串并附加一些内容.在Perl中是一个标量字符串输入和输出.

在函数中我有一个malloc.什么是正确的释放mem的方法?

SV *foo (str)
   SV *str
CODE:
    unsigned char *strbuf;
    size_t strlen;
    strbuf = (unsigned char *) SvPV (str, strlen);

    int n = strlen + 10;
    unsigned char *buf = malloc (n);    

    strncpy (buf, strbuf, strlen);
    strncat (buf, "0123456789", 10);

    RETVAL = newSVpv (buf, n);
OUTPUT:
    RETVAL
Run Code Online (Sandbox Code Playgroud)

谢谢!克里斯

c perl xs

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

C ++ 11 RegEx,非贪婪

C ++ 11 RegEx有点问题,我认为这与贪婪有关。

这是一个小样本。

#include <stdio.h>
#include <string>
#include <regex>

int main (void)
{
  std::string in="{ab}{cd}[ef]{gh}[ij][kl]";  // the input-string

  std::regex rx1 ("(\\{.+?})(.*)", std::regex::extended);       // non-greedy?
  std::smatch match;

  if (regex_match (in, match, rx1))
  {
    printf ("\n%s\n", match.str(1).c_str());
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望

{ab} 
Run Code Online (Sandbox Code Playgroud)

用于输出。但是我得到了

{ab}{cd}[ef]{gh}
Run Code Online (Sandbox Code Playgroud)

我希望得到的结果是贪婪的,而不是?在。+之后。应该让它不贪心吧?

那么我的想法出了什么问题?感谢帮助!

克里斯

c++ regex non-greedy c++11

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

bash:用于命令替换的变量中的管道字符

请有人解释一下,为什么这不起作用?

#!/bin/bash
cmd="ps aux | grep -v grep"
cnt=$($cmd)
Run Code Online (Sandbox Code Playgroud)

我从 ps 收到错误。

error: garbage option

Usage:
  ps [options]
.....
Run Code Online (Sandbox Code Playgroud)

"ps aux" 仅适用 - 但不适用于任何额外的管道命令。

谢谢!

linux bash

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

Bash:执行包含管道的变量内容

#!/bin/bash

# 1st part
ret=$(ps aux | grep -v grep)    # thats OK 
echo $ret

# 2nd part
cmd="ps aux | grep -v grep"     # a problem with the pipe | 
ret=$($cmd)         
echo $ret
Run Code Online (Sandbox Code Playgroud)

我如何使用第二部分中的命令字符串?认为管道是问题.试图逃避它,但它没有帮助.得到ps的一些snytax错误.

谢谢!

bash

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

小助手类的OOP设计

可以说我有一个正在做一些工作的C类。

为此,我需要一个非常简单的辅助类H(例如,一对或三元组的表示)。H仅在C中需要。

我将H放在C内。

class C
{
   void foo ()
   {
     // ... use H to do the job more easy ...
   }

   class H
   {
      // very simple and contained stuff
   }
}
Run Code Online (Sandbox Code Playgroud)

将H放在C中是一个好主意吗?我这样做是为了将其包含在我认为应该存在的地方,并且没有其他地方。但是我不确定这是不是好的设计。

java oop inner-classes

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

Spring-Boot:用于重定向的 Web 过滤器

我有一个过滤器。如果请求 /a,它应该重定向到 /b。

public class WebFilter extends GenericFilterBean
{ 
 @Override
 public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
 {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;

    String path = req.getRequestURI ().toString ();

    if (path.equals ("/a") == true)
    {
        System.out.println ("FILTER: a -> b");
        res.reset ();
        res.resetBuffer();
        res.sendRedirect ("b");
    }

    chain.doFilter (req, res);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是内容的处理程序。

@Component
@Controller
@RequestMapping ("/")
public class WebHandler
{

 @RequestMapping ("/a")
 public String a ()
 {
    System.out.println ("a");
    return …
Run Code Online (Sandbox Code Playgroud)

java servlet-filters spring-boot

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

Angular 2+:在外部触发一个 observable

我想从外部(例如从另一个订阅)触发一个可观察的(obs)。我发现的所有样本都是在观察者实现中通过超时在内部进行的。

obs = new Observable (observer => { ... });  


someother.subsribe ((n) => 
           {
                    // trigger obs
                    // obs.next is not available
           });
Run Code Online (Sandbox Code Playgroud)

observable rxjs angular

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

Perl:哈希键中的常量值

我有点吃惊.如果我使用常量来表示哈希键Perl不使用该值.我需要把它放在它前面以实现这一目标.

use constant A => "a";
use constant B => "b";

my %h = (A => "1", &B => "2");

print "\n". A . ", " . B;
foreach (sort (keys (%h)))
{
    print "\n"  . $_ . "=" . $h {$_};
}
Run Code Online (Sandbox Code Playgroud)

输出:

a, b
A=1
b=2
Run Code Online (Sandbox Code Playgroud)

但我希望(第二行不同).

a, b
a=1
b=2
Run Code Online (Sandbox Code Playgroud)

没有&时使用常量进行哈希键的任何方法吗?

感谢帮助!

perl hash constants

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

wget:它在哪里寻找证书?

我有一个HTTPS站点,需要一个中间证书来验证服务器的SSL证书。

如果我将中间证书放入/ etc / ssl / certs中(并进行哈希链接),则

openssl s_client -connect IP:PORT
Run Code Online (Sandbox Code Playgroud)

将工作。否则,我会收到验证错误。

wget在哪里寻找证书?只有在wget中显式设置--ca-directory时,我才能使它工作。

因此,似乎openssl会查看/ etc / ssl / certs,而wget不会。

谢谢!

编辑

如果我用-d运行wget,那么我看不到--ca-directory,它将加载约150个证书。随着选项它超过300。所以它必须是另一条路径,然后我认为openssl-default。

在Debian 10上的linux-gnu上的Wget 1.19.4

ssl openssl wget

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