小编lil*_*zek的帖子

如何在Python中将长正则表达式规则拆分为多行

这实际上是可行的吗?我有一些非常长的正则表达式模式规则很难理解,因为它们不能同时适应屏幕.例:

test = re.compile('(?P<full_path>.+):\d+:\s+warning:\s+Member\s+(?P<member_name>.+)\s+\((?P<member_type>%s)\) of (class|group|namespace)\s+(?P<class_name>.+)\s+is not documented' % (self.__MEMBER_TYPES), re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

反斜杠或三重引号不起作用.

编辑.我结束使用VERBOSE模式.以下是正则表达式模式现在的样子:

test = re.compile('''
  (?P<full_path>                                  # Capture a group called full_path
    .+                                            #   It consists of one more characters of any type
  )                                               # Group ends                      
  :                                               # A literal colon
  \d+                                             # One or more numbers (line number)
  :                                               # A literal colon
  \s+warning:\s+parameters\sof\smember\s+         # An almost static string
  (?P<member_name>                                # Capture a group called member_name
    [                                             #   
      ^:                                          #   Match anything but a colon (so finding …
Run Code Online (Sandbox Code Playgroud)

python regex

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

在模板文字中使用条件

我知道有更优雅的方法来定义包含变量的字符串,但如果我想在ES6之前添加条件,我会这样做..

var a = "text"+(conditional?a:b)+" more text"
Run Code Online (Sandbox Code Playgroud)

现在用模板文字我会做..

   let a;
   if(conditional) a = `test${a} more text`;
   else a = `test${b} more text`;
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方式来实现这种条件?是否可以包含快捷方式?

javascript ecmascript-6

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

对于有界泛型类型,运算符'+'不能应用于'T','T'

下面的代码片段告诉我错误,如标题中所示,我没有弄清楚为什么它不起作用,因为T的类型为Number,我希望运算符'+'没问题.

class MathOperationV1<T extends Number> {
        public T add(T a, T b) {
            return a + b; // error: Operator '+' cannot be applied to 'T', 'T' 
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果有人能提供一些线索,那将不胜感激,谢谢!

java generic-type-argument

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

使用 ChartJS 在 y 轴上显示美元符号

我的 Chart.js 图表 Y 轴上的标签前面应该有一个美元符号,因为它们是金钱的价值。

该代码在文档中,但对我不起作用。

var chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    // Include a dollar sign in the ticks
                    callback: function(value, index, values) {
                        return '$' + value;
                    }
                }
            }]
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这是我的结果。“之前”表示没有此代码,“之后”表示有此代码。 在此输入图像描述 显然,这不仅仅是$在值之前添加一个,而且还发生了其他事情。

知道如何解决这个问题吗?

javascript chart.js

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

Webpack输出中的"多"是什么?

Webpack正在输出类似的内容

[78] multi ./src/index.js 28 bytes {0} [built]
Run Code Online (Sandbox Code Playgroud)

multi条线上的意思是什么?

javascript webpack webpack-3

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

从ESLint应用自动修复是否安全?

我想格式化几个文件,但是我担心破坏代码

当我说是否安全时,我说的是之前和之后的代码执行是完全相同的。

例如,有些规则看起来很安全(例如缩进)。我想改变空格的数量不会影响代码的执行。

然后,有些规则看起来并不安全。例如,将var更改为let或const可能会导致执行不同,因为var与let并不完全相同。

因此,我想知道ESLint是否有任何自动修复规则可以更改代码,因此应用该--fix事物时执行方式有所不同。

javascript eslint

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

使用 TypeScript API 查找类型引用

我试图找到 a 的种类(类、接口、类型别名、枚举...)TypeReference

我有这个:

const anode = node as ts.TypeReferenceNode;
const symbol = this.typechecker.getSymbolAtLocation(anode.typeName) as ts.Symbol;
const type = this.typechecker.getTypeOfSymbolAtLocation(symbol, anode);
const decls = symbol.getDeclarations() as ts.Declaration[]; 
Run Code Online (Sandbox Code Playgroud)

但是调用getSymbolAtLocation返回undefined

anodeTypeReferenceNode根据 VSC 调试器是一个(种类 159):

在此处输入图片说明

ETypes对枚举引用的转义文本引用。

abstract-syntax-tree typescript

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

.d.ts在TypeScript 2.6.1之后没有编译

我使用TypeScript版本2.5与此环境模块的suncalc包:

// Note: incomplete
// https://www.npmjs.com/package/suncalc

declare module "suncalc" {
  interface suncalcResult {
    solarNoon: Date;
    nadir: Date;
    sunrise: Date;
    sunset: Date;
    sunriseEnd: Date;
    sunsetStart: Date;
    dawn: Date;
    dusk: Date;
    nauticalDawn: Date;
    nauticalDusk: Date;
    nightEnd: Date;
    night: Date;
    goldenHourEnd: Date;
    goldenHour: Date;
  }

  function sunCalc(date: Date, latitude: number, longitude: number): suncalcResult;

  export = { // COMPLAINING HERE <--------------------------- line 24
    getTimes: sunCalc
  };
}
Run Code Online (Sandbox Code Playgroud)

在TypeScript 2.5中,我调用suncalc.d.ts并编译了此文件,没有错误.当我升级到2.6时,它开始归咎于:

message: 'The expression of an export assignment must be an identifier …
Run Code Online (Sandbox Code Playgroud)

typescript

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

使用boost io_service初始化boost udp套接字时出错

我正在为我的项目使用Visual Studio 2012而且我是使用boost的新手,所以我遇到了运行时问题,试图初始化它:

FClient::FClient(const std::string & logName, const std::string & logPassword, udp::endpoint hostpoint) : mSocket(mService), mLogName(logName), mLogPassword(logPassword), mEndPoint(hostpoint)
{

}
Run Code Online (Sandbox Code Playgroud)

凡mSocket是升压UDP套接字,并MSERVICE是升压ASIO io_service对象(包括FClient的私有成员),我想调用(这基本上是串inits)的其余部分都没有检测到错误有用.我希望错误是在mSocket(mService)初始化的类型:

boost::asio::ip::udp::socket(boost::asio::io_service)
Run Code Online (Sandbox Code Playgroud)

Visual Studio调用堆栈:http: //pastebin.com/fjwWbhst

我正在使用带有1.5.6的Windows 8,我正在定义:-D_WIN32_WINNT = 0x0602

谢谢,

-lilEzek

c++ boost runtime boost-asio visual-studio-2012

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

Haskell - 在构造函数中推断类型

我是Haskell世界的新手,所以这可能是一个基本问题.

这段代码可以:

data Numero =
  Integer Integer |
  Rational Rational |
  Double Double
  deriving (Show)
data Elemento =
  Numero Numero |
  Incognita String
  deriving (Show)

data Monomio = Monomio {base :: Elemento, exp :: Numero} deriving(Show)

main = print (Monomio (Numero (Integer 15)) (Integer 20))
Run Code Online (Sandbox Code Playgroud)

在没有明确类型的情况下表达:

(Monomio (Numero (Integer 15)) (Integer 20))
Run Code Online (Sandbox Code Playgroud)

这个表达式:

main = print (Monomio (Integer 15) (Integer 20))
Run Code Online (Sandbox Code Playgroud)

更短的是不明确的,因为(整数15)不能适合(Incognita字符串)的定义,但它不编译:

main.hs:13:24:
    Couldn't match expected type `Elemento' with actual type `Numero'
    In the first argument of `Monomio', namely …
Run Code Online (Sandbox Code Playgroud)

haskell type-inference

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

以 PEM 格式读取 PKCS8:找不到提供程序

尝试使用以下内容读取 PEM 格式的 PKCS8 私钥:

private static PrivateKey loadPrivateKey()
        throws IOException, GeneralSecurityException, OperatorCreationException, PKCSException {
    FileReader fileReader = new FileReader(certsRoot + "/pep-client-key.pem");
    PEMParser keyReader = new PEMParser(fileReader);

    JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
    InputDecryptorProvider decryptionProv = new JceOpenSSLPKCS8DecryptorProviderBuilder().build("mypassword".toCharArray());

    Object keyPair = keyReader.readObject();
    PrivateKeyInfo keyInfo;

    if (keyPair instanceof PKCS8EncryptedPrivateKeyInfo) {
        keyInfo = ((PKCS8EncryptedPrivateKeyInfo) keyPair).decryptPrivateKeyInfo(decryptionProv); // Exception thrown from here
        keyReader.close();
        return converter.getPrivateKey(keyInfo);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

生成此错误:

org.bouncycastle.pkcs.PKCSException: unable to read encrypted data: 1.2.840.113549.1.5.13 not available: Cannot find any provider supporting 1.2.840.113549.3.7 …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle

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