小编N.F*_*.F.的帖子

“对象可能是'未定义'。” 在打字稿中

下面的代码引发Object is possibly 'undefined'.obj.field1 += ',' + v;。TypeScript 表示obj可能未定义,但此时obj不能未定义,因为{field1: 'testtest'}map.get(key)返回未定义的情况下已分配。

为什么我收到这个错误?我怎样才能解决这个问题?

interface TestIF {
  field1: string;
}

export class MyClass {
  test(): void {
    const map1: Map<string, TestIF> = new Map();
    const map2: Map<string, string> = new Map();

    const key = 'mapkey';
    let obj = map1.get(key);
    if (obj == null) {
      obj = {field1: 'testtest'};
      map1.set(key, obj);
    }

    map2.forEach( v => {
      obj.field1 += ',' + v;  // …
Run Code Online (Sandbox Code Playgroud)

typescript

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

使用 Pandas 快速生成部分 DataFrame

我有一个这样的 CSV 文件。这个文件有大约 200 万行。

2020/03/05 14:59:12.093,92.7884,93.8238
2020/03/05 14:59:14.571,97.1114,51.3926
2020/03/05 14:59:16.035,56.1351,62.6697
2020/03/05 14:59:16.992,90.3412,64.8728
         :
Run Code Online (Sandbox Code Playgroud)

我想创建熊猫数据帧,以便每个数据帧有 2 分钟的跨度和 20 秒的滑动,如下所示。

DataFrame1:

2020/03/05 14:59:12.093,92.7884,93.8238
2020/03/05 14:59:14.571,97.1114,51.3926
2020/03/05 14:59:16.035,56.1351,62.6697
           :
2020/03/05 15:01:11.652,90.6966,37.9923
2020/03/05 15:01:11.918,35.8304,1.04157
Run Code Online (Sandbox Code Playgroud)

DataFrame2:

2020/03/05 14:59:33.086,85.2834,57.327
2020/03/05 14:59:34.373,94.0521,33.8809
2020/03/05 14:59:38.752,36.8084,37.9878
           :
2020/03/05 15:01:33.090,70.4679,54.3437
Run Code Online (Sandbox Code Playgroud)

等等。

我知道我可以用下面的代码做到这一点。

df = pd.read_csv(file_name, header=None, names=['time', 'colA', 'colB'])
df['time'] = pd.to_datetime(df['time'], format=r'%Y/%m/%d %H:%M:%S.%f')
df = df.set_index('time')
extracted_dfs = []
startdatetime = df.index[0]
enddatetime = df.index[len(df)-1]
curdatetime = startdatetime
while curdatetime < enddatetime:
    extracted_df = df[curdatetime:curdatetime + pd.Timedelta(seconds=120)].copy()
    extracted_dfs.append(extracted_df) …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

删除 Google Cloud SQL 上的二进制日志

我在 Google Cloud SQL 上启用了二进制日志选项。但似乎expire_log_days无法在 google 开发者控制台上配置选项。

我可以配置这个选项吗?如果不能,什么时候二进制日志会被删除?

mysql google-cloud-sql

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

Angular Material cdk-container 和主站点固定标头 z-index 覆盖

我有一个带有fixed header角材料的z-index网站1100

虽然mat-menu我的网站中有一些与标题重叠z-index:1200并具有类cdk-overlay-container(角度材料类),但这是默认行为。

为了覆盖这个,我只需减少 to ,cdk-overlay-container z-index使其1000落后于fixed header,一切都对我来说没问题。

问题

但是,当我打开使用相同cdk-overlay-container和相同的材质对话框时z-index,它会在该覆盖层上方显示我的固定标题,因为它很高z-index,所以任何想法如何通过添加不同的来实现上述场景,class以便cdk-overlay-container我的内容mat-menu落后于fixed header但我mat-dialog最重要的内容。

屏幕截图

正常场景 https://www.screencast.com/t/XhB2szH3gZe

问题场景 https://www.screencast.com/t/fYrMYFEOd

我有一个通过类型脚本解决方案(当对话框显示较低的标题的 z-index 时),但我需要一些纯 CSS 解决方案。

谢谢!

css angular angular-material-5

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

如何两次解锁互斥锁

两次解锁互斥体是否安全?我的代码:

var m sync.RWMutex = sync.RWMutex{}

func Read() {
    m.RLock()
    defer m.RUnlock()

    // Do something that needs lock
    err := SomeFunction1()
    if err != nil {
        return
    }

    m.RUnlock()

    // Do something that does not need lock
    SomeFunction2()

}
Run Code Online (Sandbox Code Playgroud)

我需要defer m.RUnlock()案例SomeFunction1()返回错误。但是当SomeFunction1()返回没有错误时,m会被m.RUnlock()和解锁两次defer m.RUnlock()

两次解锁互斥体是否安全?如果没有,我应该如何修复我的代码?

go

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

反应式表单中的角度表单组与表单控件和表单生成器

我是角度新手。我发现该代码具有三种变体。我想知道这三者在响应式表单(表单组、表单生成器和表单控件)中实现有什么区别。

是否存在基于一种方法的应用程序性能相对于另一种方法的优先级,或者这只是偏好?

addressFormControl = new FormControl(undefined, [
  Validators.required,
  Validators.address,
]);

export class BusinessComponent {
  BusinessForm = new FormGroup({
    email: this.emailFormControl,
    firstName: new FormControl(''),
    lastName: new FormControl(''),
    address: new FormGroup({
      street: new FormControl(''),
      city: new FormControl(''),
      state: new FormControl(''),
      zip: new FormControl('')
    })
  });
}

export class BusinessComponent {
  constructor(private fb: FormBuilder) { }
  businessForm = this.fb.group({
    business: this.businessFormControl,
    firstName: [''],
    lastName: [''],
    address: this.fb.group({
      street: [''],
      city: [''],
      state: [''],
      zip: ['']
    }),
  });
}
Run Code Online (Sandbox Code Playgroud)

typescript form-control angular angular-reactive-forms formgroups

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

Jackson writeValueAsString 太慢

我想从对象创建 JSON 字符串。

ObjectMapper om = new ObjectMapper();
String str = om.writeValueAsString(obj);
Run Code Online (Sandbox Code Playgroud)

有些对象很大,创建 JSON 字符串需要很长时间。创建 8MB JSON 字符串大约需要 15 秒。

我该如何改进这个?

java json jackson

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

适用于 ARM 架构的 Google Cloud SDK

我想在 ARM 机器上使用 Google Cloud SDK。

$ uname -a
Linux myhost 3.14.79-at10 #2 SMP PREEMPT Mon Mar 6 15:38:30 JST 2017 armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

此页面中,我只能找到 x86 架构。

我可以在 ARM 上运行 Google Cloud SDK 吗?

google-cloud-platform google-cloud-sdk

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

TCP不可靠吗?

我相信 TCP 是可靠的。如果write(socket, buf, buf_len)andclose(socket) 返回没有错误,接收者将收到buf与长度完全相同的数据buf_len

但是这篇文章说TCP不可靠。

A:

  sock = socket(AF_INET, SOCK_STREAM, 0);  
  connect(sock, &remote, sizeof(remote));
  write(sock, buffer, 1000000);             // returns 1000000
  close(sock);
Run Code Online (Sandbox Code Playgroud)

乙:

int sock = socket(AF_INET, SOCK_STREAM, 0);
bind(sock, &local, sizeof(local));
listen(sock, 128);
int client=accept(sock, &local, locallen);
write(client, "220 Welcome\r\n", 13);

int bytesRead=0, res;
for(;;) {
    res = read(client, buffer, 4096);
    if(res < 0)  {
        perror("read");
        exit(1);
    }
    if(!res)
        break;
    bytesRead += res;
}
printf("%d\n", bytesRead);
Run Code Online (Sandbox Code Playgroud)

测验问题 - 程序 …

c sockets tcp

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