我有时会看到类似下面的东西.
class Test(val str: String){
}
Run Code Online (Sandbox Code Playgroud)
我写了一些示例代码,val但我没有看到常见声明和方式之间有任何区别val.
他们之间有什么区别?什么时候应该使用?
我有一个这样的列表:
a:1 1 1 1 2 3 1 1 4 4 4 5 6 4
Run Code Online (Sandbox Code Playgroud)
如何将所有连续相同的数字相加a,以便它将变为:
a:4 2 3 2 12 5 6 4
Run Code Online (Sandbox Code Playgroud) 我需要链接promises来发出几个GET请求,并在将数据用于其他地方之前将其合并.我很难解决这两个承诺.我尝试在尝试使用之前返回两个promise的数组,.json()但这也不起作用.
activate() {
// data is from http://jsonplaceholder.typicode.com/photos and
// since there is not a photos2/ endpoint this is conceptual and
// represents batch importng
return Promise.all([
this.http.fetch('photos'),
this.http.fetch('photos2')
]).then(responses => {
console.log(responses); // see block of code below this for output
// how can I combine the two promises here so I can resolve them with 'then' below?
return responses[0].json(); // can return one response
// return responses; // doesn't work
}).then(data => {
console.log(data);
this.photos = …Run Code Online (Sandbox Code Playgroud) 所有以前的功能完成后,我正在尝试执行我的函数HideEmptyTile.
到目前为止我一直在使用TimeOut,但这并不是我想要完成的正确方法.
这是我以前的代码:
retrieveAccountOpenWithVisitObjectif(userId, processOpenWithVisitObjectif);
retrieveAccountOpen(userId, processAccountOpen);
retrieveAllActivitiesOpen(userId, processAllActivitiesOpen);
setTimeout("HideEmptyTile()", 800);
Run Code Online (Sandbox Code Playgroud)
经过一些研究后我发现我可以使用另一个回调函数,但似乎Promise.all已经构建了我的案例.所以我做了下一个代码:
Promise.all(
retrieveAccountOpenWithVisitObjectif(userId, processOpenWithVisitObjectif),
retrieveAccountOpen(userId, processAccountOpen),
retrieveAllActivitiesOpen(userId, processAllActivitiesOpen)).then(HideEmptyTile());
Run Code Online (Sandbox Code Playgroud)
问题是,这不是我想要的行为,因为函数HideEmptyTile在其他函数之后没有执行.
我是以错误的方式使用Promise.all吗?
我正在阅读有关 React 中的unknown-prop警告,特别是因为我正在使用react-bootstrap包并在那里偶然发现了它们。
我读过:“为了解决这个问题,复合组件应该“消耗”任何用于复合组件而不是用于子组件的道具”,在这里:
https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b
并给出了一个示例,说明如何使用展开运算符将变量从 props 中取出,并将剩余的 props 放入变量中。
示例代码:
function MyDiv(props) {
const { layout, ...rest } = props
if (layout === 'horizontal') {
return <div {...rest} style={getHorizontalStyle()} />
} else {
return <div {...rest} style={getVerticalStyle()} />
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于:在给出的示例中,我不明白此代码中的“...rest”代表什么。我知道“...”=展开语法,但是“rest”这个词从哪里来,它代表什么?
我正在尝试将一些bash dotfile转换为它们的鱼等效项。
我有一个~/.bash_logout看起来像这样:
# Flush the in-memory history, then persist the emptiness to disk.
history -c && history -w;
Run Code Online (Sandbox Code Playgroud)
尽管fish 确实具有history命令,但是它没有相同的选项,因此上述内容无法在fish中照常使用。
到目前为止history clear,我得到的最接近的是,尽管这似乎仅适用于当前会话,并且不会保留下来,因为历史记录会在我创建的任何新选项卡中返回。此外,它会提示您进行确认,我希望每次注销时都不必这样做。
但是,这是进步,因此基于另一个答案,我将其输入~/.config/fish/config.fish:
function on_exit --on-process %self
history clear
end
Run Code Online (Sandbox Code Playgroud)
这似乎甚至没有提示我,更不用说做任何有用的事情了。否则,它就不会阻塞并且发生得太快,以至于我看不到它。
如何在出口处理程序中永久擦除鱼壳历史并在以后的会话中保持该状态?现有的会话也将很好,但是重要性不那么高。
最后,history手册页指出“内置历史记录”不会提示您进行确认。改为使用它是否有意义,如果可以,如何使用?
·clear清除历史记录文件。在删除历史记录之前会显示一个提示,要求您确认您是否确实要清除所有历史记录,除非使用内置历史记录。
由于 Node.js 使用 V8 js 引擎,我想它的工作方式与 v8 相同,并且仅在 CPU 密集型或被多次调用时优化/jit 编译函数或某些代码段。
考虑到我正在制作一个服务器并且我想从我的代码中获得最佳性能,并且内存不是问题,是否有办法“强制”我的所有代码进行 JIT 编译和优化以提高性能从它第一次运行的那一刻起?
我有一个界面
interface ITodoFilterItem {
name: string,
filter: string,
filterTodos: any
}
Run Code Online (Sandbox Code Playgroud)
以及引用它的同一个文件中的一个类
class TodoFilterItem extends Component<ITodoFilterItem> {
constructor (props:ITodoFilterItem) {
super(props);
this.handleFilter = this.handleFilter.bind(this);
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在这个文件的底部添加 propTypes 时
TodoFilterItem.propTypes = {
name: PropTypes.string,
filter: PropTypes.string,
filterTodos: PropTypes.any
}
Run Code Online (Sandbox Code Playgroud)
我得到:
Property 'propTypes' does not exist on type 'typeof TodoFilterItem'. TS2339
Run Code Online (Sandbox Code Playgroud)
仅供参考:我import PropTypes from 'prop-types';在顶部
我正在尝试在 JavaScript 和画布中制作康威的生活游戏,我有一个 1280x720 的矩阵用于存储单元格数据,我目前将数据存储为 1 = 活着,0 = 死了,然后当我检查如果一个细胞还活着,我只是这样做:if(matrix[i][j])
我很好奇这是否可以改进,并在https://jsbench.me/ 上做了一些测试,
复制了一个类似的场景,并注意到如果使用“true/false”,整个事情+-11% 慢,为什么会这样?不是应该更快吗?
示例基准,只需将 1 更改为 true 即可测试其他场景
let array = []
for(let i = 0; i<1000000; i++){
array.push(1)
}
let sum = 0
for(let i = 0; i<1000000;i++){
if(array[i]){
sum++
}
}
Run Code Online (Sandbox Code Playgroud) 在我的程序中,我通常有很多带有签名的函数myFunc({ param })。我想测试每次使用新对象或使用包含对象的变量调用这些函数之间有什么区别。IE:
myFuncA({ param: 1 });
// vs
const paramObj = { param: 1 };
myFuncB(paramObj);
Run Code Online (Sandbox Code Playgroud)
所以我想出了一个简单的测试:
let a = 0;
let b = 0;
function myFuncA({ param }) {
a += param;
}
function myFuncB({ param }) {
b += param;
}
const iterations = 1e9;
console.time('myFuncA');
for(let i = 0; i < iterations; i++) {
myFuncA({ param: 1 });
}
console.timeEnd('myFuncA')
console.time('myFuncB');
const paramObj = { param: 1 };
for(let i = 0; i < …Run Code Online (Sandbox Code Playgroud) javascript ×6
performance ×3
v8 ×3
node.js ×2
reactjs ×2
typescript ×2
arrays ×1
command-line ×1
ecmascript-6 ×1
es6-promise ×1
fetch-api ×1
fish ×1
promise ×1
scala ×1
shell ×1