小编Lpp*_*Edd的帖子

Rust手动内存管理

当我开始学习C时,我实现了常见的数据结构,如列表,地图和树.我用malloc,calloc,reallocfree请求时,手动管理内存.我用C++做了同样的事情,使用newdelete.

现在来了Rust.看起来Rust没有提供任何与C或C++相对应的函数或运算符,至少在稳定版本中是这样.

Heap结构和ptr模块(标记experimental)中的那些看对这种事情?

我知道这些数据结构已经在语言中.这是为了学习.

memory-management rust

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

检查学生是否超过18岁

我正在做一个功课,要求我检查学生是否超过18岁.我的功能是这样的:

bool Student::isOverEighteen() {
  int date[3]; // D/M/Y
  char *pdata;

  pdata = strtok(Anagrafica::birth, "/"); // Anagrafica is the base class

  for (short i = 0; pdata != NULL; i++) {
    data[i] = pdata;
    pdata = strtok(NULL, "/");
  }

  time_t t    = time(NULL);
  tm *locale  = localtime(&t);

  if (data[0] < locale->tm_mday &&
     (data[1] < locale->tm_mon + 1  || data[1] == locale->tm_mon + 1) &&
     (locale->tm_year + 1900 - data[3] > 18))
  {
    return true;
  } else {
    return false;
  }
} …
Run Code Online (Sandbox Code Playgroud)

c++ class

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

if语句代码样式返回

说我有这个功能:

inline bool fileExists(const char *name) {
  FILE *file;
  if (fopen_s(&file, name, "r") == 0)
  {
    fclose(file);
    return true;
  } else {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

最好是做上面这个,还是这个呢?

inline bool fileExists(const char *name) {
  FILE *file;
  if (fopen_s(&file, name, "r") == 0)
  {
    fclose(file);
    return true;
  }

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

编译时有区别吗?

c++ styles if-statement coding-style return

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

AS400文件 - 将PF和LF转换为SQL

我在IBM环境中工作,特别是AS400机器和DB2数据库.
我的下一个任务是将每个可能的文件从PF和LF转换为SQL(例如,CREATE TABLE ...和CREATE VIEW ...).

我不能这样做的情况吗?
我知道对于多记录格式文件你不能,是真的吗?

db2 file rpg rpgle ibm-midrange

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

RxJs-具有空数组的forkJoin

我目前正在forkJoin等待Observable(s)数组在pipe(ing)和tap(ping)之前完成。

我注意到如果数组为空,则什么也不会发出,甚至也不能tap。我该如何解决这类问题?我应该只检查数组是否为空吗?

myFirstFunction(...) {
   const observables = ...
   return forkJoin(observables)
}

mySecondFunction(...) {
   return myFirstFunction().pipe(tap(() => ...))
}
Run Code Online (Sandbox Code Playgroud)

rxjs

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

Angular Material - MatTable 可扩展行动画

目前我已经建立了一个MatTable可扩展的行:

<!-- Hidden cell -->
<ng-container matColumnDef="expandedDetail">
    <td mat-cell *matCellDef="let myModel" [attr.colspan]="displayedColumns.length">
        <div
            class="detail-cell"
            [@detailExpand]="myModel.isExpanded ? 'expanded' : 'collapsed'"
        >
            <my-inner-component
                ...
            ></my-inner-component>
        </div>
    </td>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

和行:

<!-- Hidden row -->
<tr
    mat-row
    *matRowDef="let myModel; columns: ['expandedDetail']"
></tr>
Run Code Online (Sandbox Code Playgroud)

可扩展行附加了动画:

animations: [
    trigger('detailExpand', [
        state('collapsed, void', style({ height: '0px', minHeight: '0', display: 'none' })),
        state('expanded', style({ height: '*' })),
        transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
    ])
]
Run Code Online (Sandbox Code Playgroud)

由于我显示了很多行,这my-inner-component是一个沉重的组成部分,我希望仅在行展开时才创建它。
所以我补充说:

*ngIf="myModel.isExpanded"
Run Code Online (Sandbox Code Playgroud)

到包含div.

然而,动画显然中断了。
我怎么解决这个问题?如果可能的话,我想保持动画。

angular-material angular

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

Typescript Pick - 选择属性字段

假设我有一个界面,例如:

interface MyInterface {
   myProperty: {
     one: number
     two: string
   }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能Pick myProperty字段?这可能吗?
想要的结果应该是:

{
   one: number
   two: string
}
Run Code Online (Sandbox Code Playgroud)

这样在使用类型时:

type MyType = ...

const t: MyType = ...
t.one = ...
Run Code Online (Sandbox Code Playgroud)

typescript

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

Angular 组件测试 - 按组件查询

当测试 a 的 DOM 表示时@Component,您可以通过其固定装置查询其嵌套元素

fixture.debugElement.queryAll(By.css('.example'));
Run Code Online (Sandbox Code Playgroud)

您还可以按以下条件过滤@Directive

fixture.debugElement.queryAll(By.directive(RouterLinkDirectiveStub));
Run Code Online (Sandbox Code Playgroud)

现在,假设你有一个@Component NzButtonComponent像这样使用的内部

<button nz-button>Example</button>
Run Code Online (Sandbox Code Playgroud)

怎样才能精确查询到呢?没有By.component(...)

angular angular-test

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

Webpack TerserPlugin - 排除节点模块

使用自定义 Angular Builder,我尝试将整个模块排除在缩小/优化之外。

Webpack.md文件说

类型
:String|RegExp|Array 默认值:undefined

要排除的文件。

我可以使用此设置来排除整个目录(即节点模块)吗?


当前的代码是

export default class CustomizeTerserBrowserBuilder extends BrowserBuilder {
  public buildWebpackConfig(root: any, projectRoot: any, host: any, options: any): any {
    const webpackConfig = super.buildWebpackConfig(root, projectRoot, host, options);

    if (
      webpackConfig.optimization &&
      webpackConfig.optimization.minimizer &&
      Array.isArray(webpackConfig.optimization.minimizer)
    ) {
      const terserPlugin = (webpackConfig.optimization.minimizer as any[]).find(
        minimizer => minimizer instanceof TerserPlugin
      );

      if (terserPlugin) {
        terserPlugin.options.exclude = [/node_modules/];
      }
    }

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

single-page-application typescript ecmascript-6 webpack angular

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

TypeScript类扩展了JavaScript函数

我想class从现有的类式JavaScript 创建一个新的扩展function

function MyFunctionClass() { }

MyFunctionClass.prototype.myMethod = function(str) {
  console.log(str);
};
Run Code Online (Sandbox Code Playgroud)

我写了这段简单的代码

class Test extends MyFunctionClass {
    constructor() {
        super();
    }
}

let t = new Test();
t.myMethod('Test');
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它确实有效,因为它可以打印Test并且不会引发运行时错误。
但是,TypeScript游乐场告诉我

类型'()=> void'不是构造函数类型。

我可以安全地忽略此错误并在生产中使用该代码吗?

typescript

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