我正在用 slack 构建一些集成 github,它将通知用户(拉取请求的审阅者)并在 #general 聊天中向他们发送链接。
我正在努力提及用户,现在我只找到一种方式来提及他们:通过usernameSlack,但是要知道这一点username,我必须请人给我。<@display_name>即使使用link_names: 1参数,提及 via似乎也不起作用。
所以,我已经使用emotion-js了一段时间了,我喜欢它!但是我真的很讨厌e2e测试。所有选择器看起来都像这样:div > div > div > p,因为emotion注入的类名是随机生成的字符串。因此,我想到了将data-属性注入DisplayName每个元素,以便能够以更简洁的方式测试它们:[data-test-id*="DateButton"]或类似的东西。所以我写了这个简单的包装器:https :
//gist.github.com/sergeyvlakh/3072a4e2e27456bda853a1e1a213a568
我这样使用它:
import Injector from './injector';
export default props =>
(
<Injector>
<MyReactTree />
</Injector>
)
Run Code Online (Sandbox Code Playgroud)
这里的问题是我不是“动态”注入数据属性。我想像使用以下任何HoC一样使用它recompose:
export default Injector(App)
甚至使用动态道具名称,例如:export default Injector('data-test-id')(App)。但是... Injector在这种情况下...的孩子将是不确定的,所以我不知道如何进行:)
更新: 感谢remix23我这样做是这样的:https : //gist.github.com/sergeyvlakh/f99310cdef018c06451333a36e764372
但是,我强烈建议使用他的代码。
我想知道,什么代码运行得更快?例如,我们有变量x:
if x!=0 : return
Run Code Online (Sandbox Code Playgroud)
要么
if x: return
Run Code Online (Sandbox Code Playgroud)
我试着用timeit检查,结果如下:
>>> def a():
... if 0 == 0: return
...
>>> def b():
... if 0: return
...>>> timeit(a)
0.18059834650234943
>>> timeit(b)
0.13115053638194007
>>>
Run Code Online (Sandbox Code Playgroud)
我不太明白.
例如,我有一个"字符串"列表:("First""second""third.").
我需要将所有"s"替换为"a" - >(("Firat")......等我发现了非常漂亮的函数,称为替换,但它仅适用于一个序列.
我可以在mapcar中使用替换吗?像这样的东西:
(mapcar 'substitute #\d #\o '(("test") ("wow") ("waow")))
Run Code Online (Sandbox Code Playgroud)