小编Dom*_*čič的帖子

在android studio中缺少api level 15图像

昨天我将android studio升级到2.0,现在我找不到api 15图像来创建新的模拟器? 图片

android android-emulator android-studio

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

在新进程中执行 python 代码比在主进程中慢得多

我开始学习multiprocessinginpython并且我注意到在主进程上执行相同的代码比在使用multiprocessing模块创建的进程中执行得快得多。

这是我的代码的简化示例,其中我首先执行代码main process并打印前 10 个计算的时间和总计算的时间。然后执行相同的代码new process(这是一个长时间运行的进程,我可以随时发送new_pattern)。

import multiprocessing
import random
import time


old_patterns = [[random.uniform(-1, 1) for _ in range(0, 10)] for _ in range(0, 2000)]
new_patterns = [[random.uniform(-1, 1) for _ in range(0, 10)] for _ in range(0, 100)]


new_pattern_for_processing = multiprocessing.Array('d', 10)
there_is_new_pattern = multiprocessing.Value('i', 0)
queue = multiprocessing.Queue()


def iterate_and_add(old_patterns, new_pattern):
    for each_pattern in old_patterns:
        sum = 0
        for count in range(0, 10):
            sum += …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multiprocessing long-running-processes

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

初始化后如何将Validators设置为FormGroup

我有这个FormGroup

defaultIdNumberValidator = [Validators.required, Validators.minLength(6),
    Validators.maxLength(11)];

this.registerForm = this.formBuilder.group({ 
  permissions: this.formBuilder.group({
    country: ['', [Validators.required]],
    identityNumber: [null, this.defaultIdNumberValidator],
  }, {validator: [this.validateId]}) 
});
Run Code Online (Sandbox Code Playgroud)

我想identityNumber根据this.validateId方法中的某些条件清除并添加验证器。

validateId(input: AbstractControl) {
  if(condition) {
    input.get("identityNumber").clearValidators(); //this is working
  }
  if(condition) {
    input.get("identityNumber").setValidators(this.defaultIdNumberValidator); //not working
  }
}
Run Code Online (Sandbox Code Playgroud)

setValidators方法被调用时,我得到这个错误(行:109是setValidators被调用的行)

ERROR TypeError: Cannot read property 'defaultIdNumberValidator' of undefined
    at RegisterComponent.validateId (register.component.ts:109)
    at eval (forms.js:742)
    at Array.map (<anonymous>)
    at _executeValidators (forms.js:742)
    at eval (forms.js:694)
    at eval (forms.js:742)
    at Array.map (<anonymous>)
    at _executeValidators (forms.js:742) …
Run Code Online (Sandbox Code Playgroud)

validation angular angular5

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

为什么 setValidators() 在下一次更改而不是立即开始使用新的验证器

例如,我有这个代码,它wordminlength6 个字符的验证器初始化。然后当长度word大于 4 时minlength设置为 8 个字符。

问题是,当您输入第五个字符时,更改不会立即可见,但在您输入第六个字符或删除一个或多个字符后,更改是可见的。

this.registerForm = this.formBuilder.group({ 
  word: [null, [Validators.required, Validators.minLength(6)]
}, {validator: this.validateNumber});

validateNumber(input: AbstractControl) {
  if(input.get("word").value != null && input.get("word").value.length > 4) {
    input.get("word").setValidators([Validators.required, Validators.minLength(8)]);
  }
}
Run Code Online (Sandbox Code Playgroud)

我在plunker上创建了这个例子。当您开始在输入框中输入时,会出现 错误minlength,当您输入第六个字符而不是第五个字符时,它会从 6 变为 8。

validation angular angular5

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