小编jmg*_*net的帖子

Typescript:使用日期作为地图中的键?

在我的应用程序中,我需要每个日期的对象地图。由于打字稿既有 aMap又有 aDate对象,我希望这很简单。

  let map: Map<Date, MyObject> = new Map<Date, MyObject>();
Run Code Online (Sandbox Code Playgroud)

并用于set添加新的键和值对。但后来我意识到我不能get使用日期的值,除非我使用完全相同的实例Date

我用它编写了一个单元测试:

  it('Should not be a problem', () => {
      let d1: Date = new Date(2019, 11, 25);    // Christmas day
      let d2: Date = new Date(2019, 11, 25);    // Same Christmas day?

      let m: Map<Date, string> = new Map<Date, string>();
      m.set(d1, "X");

      expect(m.get(d1)).toBe("X");   // <- This is OK.
      expect(m.get(d2)).toBe("X");   // <- This test fails.
  });
Run Code Online (Sandbox Code Playgroud)

为什么除非使用完全相同的实例,否则我无法从地图中获取值?

dictionary date typescript angular

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

如何使用 CMake 将 Info.plist 捆绑到 MacOSX 应用程序中?

我正在开发一个访问相机的应用程序。该项目是用 C++ 编写的,我使用 CMake 来打包它。

要在 Mac 中部署项目,我使用以下命令,然后在 Xcode 中打开项目:

cmake -G Xcode ../src
Run Code Online (Sandbox Code Playgroud)

它工作得很好,直到上次更新,当它开始抱怨:

[access] This app has crashed because it attempted to access 
privacy-sensitive data without a usage description.  The app's 
Info.plist must contain an NSCameraUsageDescription key with 
a string value explaining to the user how the app uses this data.
Program ended with exit code: 9
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个新的 Info.plist 文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
    <dict>
        <key>CFBundleIconFile</key>
        <string></string>
        <key>NSCameraUsageDescription</key>
        <string>This app requires to access …
Run Code Online (Sandbox Code Playgroud)

macos xcode cmake plist

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

在Java中,提供参数以扩展参数化接口的接口是它的确切同义词吗?

我想将接口用作参数化接口的简称,以避免使用通用语法污染所有代码。例如:

EggChicken egg = chicken.lay();  // Can't make it compile.
Run Code Online (Sandbox Code Playgroud)

代替:

Egg<AnimalChicken> egg = chicken.lay(); // Compiles happily.
Run Code Online (Sandbox Code Playgroud)

假设我想使用参数化类(https://en.wikipedia.org/wiki/Modes_of_reproduction)对动物繁殖模式进行建模。我有以下界面:

public interface Animal<T> {
   T lay();
}

interface Viviparous<T extends Viviparous> extends Animal<T> {
}

interface Egg<T extends Oviparous> {
    T hatch();
}

interface Oviparous<T extends Oviparous> extends Animal<Egg<T>> {
}
Run Code Online (Sandbox Code Playgroud)

这个想法是,胎生动物躺在同一动物的新实例,而卵生动物打好的鸡蛋孵化同一动物的新实例。

现在,我想定义更精确的接口来描述狗和鸡:

interface AnimalDog extends Viviparous<AnimalDog> {
}

interface AnimalChicken extends Oviparous<AnimalChicken> {
}

interface EggChicken extends Egg<AnimalChicken> {
}
Run Code Online (Sandbox Code Playgroud)

最后,这些是实现:

public …
Run Code Online (Sandbox Code Playgroud)

java generics inheritance interface

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