小编mat*_*ich的帖子

确定字符串是否包含Swift中集合中的字符的最佳方法是什么

我需要确定一个字符串是否包含我定义的自定义集中的任何字符.

我在这篇文章中看到你可以使用rangeOfString来确定一个字符串是否包含另一个字符串.当然,如果您一次测试一个角色,这也适用于角色.

我想知道最好的办法是什么.

swift

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

Redux Saga异步/等待模式

我在整个代码库中使用async/await.因此,我的api调用由异步函数定义

async function apiFetchFoo {
  return await apiCall(...);
}
Run Code Online (Sandbox Code Playgroud)

我想从我的传奇代码中调用这个函数.好像我不能这样做:

// Doesn't work
function* fetchFoo(action) {
  const results = await apiFetchFoo();
  yield put({type: "FOOS_FETCHED_SUCCESSFULLY", foos: results});
}
Run Code Online (Sandbox Code Playgroud)

但是,这确实有效,并且与redux saga文档相匹配:

// Does work
function* fetchFoo(action) {
  const results = yield call(apiFetchFoo);
  yield put({type: "FOOS_FETCHED_SUCCESSFULLY", foos: results});
}
Run Code Online (Sandbox Code Playgroud)

这是使用Redux Saga和async/await的正确方法吗?在saga代码中使用这个生成器语法,在其他地方使用async/await模式是标准的吗?

redux redux-saga react-redux

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

纱线 - 删除包装最佳做法

如果您想使用Yarn删除包,您应该:

  1. yarn remove [package]

要么

  1. 从中删除package.json并运行yarn install

两者都一样吗?#2会更新yarn.lock吗?

yarnpkg

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

使用className prop的React + TypeScript

className在自定义组件中键入和使用prop 的正确方法是什么?我曾经能够做到这一点:

class MyComponent extends React.Component<MyProps, {}> {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后使用我的组件:

<MyComponent className="my-class" />
Run Code Online (Sandbox Code Playgroud)

请注意,我不会定义classNameMyProps,虽然阵营先前输入的支持这种用法.

现在,我现在看到这种类型的错误:

Property 'className' does not exist on type 'IntrinsicAttributes & 
IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ 
childr...'
Run Code Online (Sandbox Code Playgroud)

定义/键入我的组件的正确方法是什么,这将允许我className在使用我的组件时使用?

typescript reactjs

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

如果快速刷卡,UIPageViewController didFinishAnimating不会被调用

我有一个按预期工作的UIPageViewController.我可以向左和向右滚动,didFinishAnimating当我滚动每个方向时调用委托方法.但是,如果我滚动太快,我最终会在didFinishAnimating未调用的页面上,尽管它会被调用所有以前的页面.有谁知道为什么会发生这种情况?

我认为didFinishAnimating无论如何都会在每次页面转换时调用(例如,即使转弯中止).

cocoa-touch objective-c ios uipageviewcontroller

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

TypeScript 将通用对象从蛇形转换为驼色盒

我想编写一个函数,该函数接受带有蛇形大小写键的对象并将其转换为带有驼色大小写键的对象。假设我们知道输入对象的类型,但希望解决方案是通用的,那么在 TypeScript 中输入此类函数的最佳方式是什么?

type InputType = {
  snake_case_key_1: number,
  snake_case_key_2: string,
  ...
}

function snakeToCamelCase(object: T): U {
  ...
}
Run Code Online (Sandbox Code Playgroud)

键入TU.

我想U尽可能窄地键入,并且理想地U基于的类型T

理想情况下,如果T是我的示例,InputType我希望将 U 输入为

{
  snakeCaseKey1: number,
  snakeCaseKey2: string,
  ...
}
Run Code Online (Sandbox Code Playgroud)

typescript

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

为什么我的C#quicksort实现明显慢于List <T> .Sort

我在C#中实现了一个quicksort版本,并执行了一些快速基准来与C#进行比较List<T>.Sort.我发现我的实现比库版本慢得多.我想知道为什么.这是一些粗略的基准数字.对于输入,我使用了一个随机(均匀)生成的整数列表,其中包含很少的重复元素.请注意,所有基准时间均为多次运行的平均值.

100,000 elements
My code         0.096 seconds
List<T>.Sort    0.011 seconds

1,000,000 elements
My code         1.10 seconds
List<T>.Sort    0.14 seconds
Run Code Online (Sandbox Code Playgroud)

我的代码如下.以下是我尝试过的优化列表及其结果:

  • 在线 - 我试图在线Swap和 我的ChoosePivotIndex功能内嵌,我看到了大约10%的改进.
  • 枢轴选择 - 我知道我正在使用天真的枢轴选择方法.我也试过使用三个随机元素的中位数.这并没有带来太大的改善.我猜这是因为我用于基准测试的输入数据是均匀随机的.
  • 并行性 - 我尝试并行进行递归分区调用.这似乎实际上增加了执行时间.
  • 特殊外壳小输入 - 我已经尝试切换到小输入的插入排序(如List<T>.Sort声称做).这产生了大约20%的改善.

通过这些优化的组合,我已经能够将我的代码降低到

100,000 elements -   0.062 seconds
1,000,000 elements - 0.740 seconds 
Run Code Online (Sandbox Code Playgroud)

这仍然比库Sort慢得多.在我的代码中有没有明显的解释性能差距,或者是从更小的调整中剩下的70-80%的差距?请注意,下面的代码是我未经优化的基础版本

public class Quicksorter<T> where T : IComparable<T>
{
    protected Random random;
    public Quicksorter()
    {
        random = new Random();
    }

    public void Sort(IList<T> …
Run Code Online (Sandbox Code Playgroud)

.net c# sorting optimization quicksort

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

如何定义导入变量类型

我已经noImplicitAny设置true为我的TypeScript编译器.当我使用像下面这样的导入时,它会抛出一个错误,因为我没有明确定义foo变量的类型:

import * as foo from "bar";

我能够定义一个foo使用CommonJS require语法的类型:

const foo: FooType = require("bar");

有没有办法定义foo使用import * as ...语法的类型?

typescript

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

Matplotlib 3D绘图zorder问题

我有一个由蓝色表面(绘制通过plot_surface)和红色球体(绘制通过scatter)组成的图.曲面的zorder设置为0,并且球体的zorder设置为1(尽管未设置任何zorder值会产生相同的结果).

您可以看到红色球体位于曲面的左侧: 在此输入图像描述

当我旋转绘图时,您可以看到红色球体开始消失在蓝色表面后面,即使它在它前面:

在此输入图像描述

直到红色球体完全消失: 在此输入图像描述

奇怪的是,对于某些角度/视图,红色球体重新出现并再次可见,例如: 在此输入图像描述

这里发生了什么?我已经阅读了其他一些与绘图/ zorder相关的问题,但我还没有看到这种行为,其中一个对象明显位于另一个对象的前方/前方,并且在大多数视角下无法正确显示.

如果我使蓝色表面透明,当它在下面的图中消失时,你可以看到表面后面的红色球体(所以看起来绘图库实际上认为它在表面后面).

python matplotlib

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

Spacemacs查找文本(SPC /)不起作用

我最近在Windows上安装了Spacemacs。“智能搜索”命令SPC /不起作用。当我按SPC /我得到错误:

Wrong type argument: commandp, helm-do-grep

似乎有一些问题提到了这个-https://github.com/syl20bnr/spacemacs/issues/8463

有人知道怎么回事吗?

spacemacs

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

在AppCode中更改字体大小

我正在使用Appcode,我想改变字体大小,虽然我似乎找不到任何选项来做这个(在互联网上似乎没有太大的帮助).

如果我转到首选项 - >编辑器 - >颜色和字体 - >字体我可以看到字体大小,但它不可编辑.

在此输入图像描述

有谁知道我怎么能改变字体大小?

appcode

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

Spacemacs电力线分离器改变不起作用

我正在尝试为Spacemacs定制powerline分隔符样式.我下面的代码添加到我的.spacemacs文件,如部分11.1.5.5中的文档要说到做到.

(setq powerline-default-separator 'bar)
Run Code Online (Sandbox Code Playgroud)

但是,我的UI中没有任何变化.我尝试重新加载SPC f e R并重新启动Spacemacs.难道我做错了什么?

spacemacs

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

在 Swift 中运行时定义新类

我想在运行时定义一个临时类(目的是创建模拟对象以进行测试)。例如:

class Foo {
    func bar(classType) {
        class Mock: classType {
            // class body
        }
        let m = Mock()
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

目前可以在 Swift 中做这样的事情吗?如果不是直接,也许通过泛型?

swift

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