小编jiw*_*ene的帖子

javascript – 在 textarea 插入符号移动时执行

我有 textarea,我想更改说明插入符号(光标)后面的字符的文本。

<textarea id="text"></textarea>
<br/>
Character after the caret: <span id="char"></span>
Run Code Online (Sandbox Code Playgroud)

我知道如何获得插入符号位置。问题是我不知道当用户移动插入符号时会调用什么事件(通过键入、按箭头键、单击、粘贴文本、剪切文本等)。

javascript events textarea caret addeventlistener

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

方法结果缓存时如何处理constness?

我有一个类,它的方法(getter)执行一些相对昂贵的操作,所以我想缓存它的结果。调用该方法不会改变对象的行为,但需要将其结果存储在 中this,因此它不能是 const。

问题是我现在有另一个 const 方法,我需要调用我的 getter。这个问题有一些普遍接受的解决方案吗?我是否应该绕过 getter 中的 constness 检查以使其成为 const(这不会导致优化编译器出现问题吗?)或者我必须将非 constness 传播到使用此 getter 的所有方法?

例子:

class MyClass
{
public:
    Foo &expensiveGetter() /*const?*/
    {
        if (cachedValue == nullptr) {
            cachedValue = computeTheValue();
        }
        return *cachedValue;
    }

    void myMethod() /* How to make this const? */
    {
        auto &foo = expensiveGetter();
        // etc.
    }

private:
    Foo *cachedValue = nullptr;
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似RefCellRust 的东西。

c++ getter design-patterns memoization

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

为什么 C 有逻辑和按位“或”运算符?

为什么 C 有||and|运算符?据我所知,|运算符可以||在条件中替换,因为当至少一个操作数非零时,它会返回真(非零)值。

我只是出于好奇而问。我知道我应该||用于逻辑表达式。

例子

#include <stdio.h>

int main(void) {
    int to_compare = 5;

    /* Try with bitwise or */
    if ((5 > to_compare) | (to_compare == 6)) {
        printf("‘to_compare’ is less than or equal to 5 or equal to 6.\n");
    }

    /* Try with logical or */
    if ((5 > to_compare) || (to_compare == 6)) {
        printf("‘to_compare’ is less than or equal to 5 or equal to 6.\n"); …
Run Code Online (Sandbox Code Playgroud)

c if-statement bitwise-operators logical-operators

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

在 Vim on Putty 中突出显示带有颜色的选项卡的好方法是什么?

我总是使用 putty 连接到 Linux 机器。我真的想让文件中的标签在 Vim 中可见。

我可以使用下面的脚本在 Gvim 中突出显示标签。

syntax match Tab /\t/
hi Tab gui=underline guifg=blue ctermbg=blue
Run Code Online (Sandbox Code Playgroud)

但是Vim with Putty,它不起作用。我尝试将 gui 更改为 cterm,将 guifg 更改为 ctermfg。但还是不行。

我知道还有其他方法可以使选项卡像下面的脚本一样可见。选项卡将显示为“>----”。不过我不喜欢这种方式。

set lcs=tab:>-
set list!
Run Code Online (Sandbox Code Playgroud)

你们知道有什么方法可以在 Putty 上的 Vim 中突出显示带有颜色的选项卡吗?

vim putty highlight

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

如何使用 async/await 在 node.js 中异步 createReadStream

我无法使用fs.creadReadStream异步处理我的 csv 文件:

async function processData(row) {
    // perform some asynchronous function
    await someAsynchronousFunction();
}

fs.createReadStream('/file')
    .pipe(parse({
        delimiter: ',',
        columns: true
    })).on('data', async (row) => {
        await processData(row);
    }).on('end', () => {
        console.log('done processing!')
    })
Run Code Online (Sandbox Code Playgroud)

我想在createReadStream到达之前逐条读取每条记录后执行一些异步功能on('end')

但是,在on('end')我的所有数据完成处理之前就被命中了。有谁知道我可能做错了什么?

提前致谢!

stream node.js async-await

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

从 ByteBuffer 读取以 NUL 结尾的字符串

如何从 JavaByteBuffer中读取以 NUL 结尾的 UTF-8 字符串ByteBuffer#position()

\n
ByteBuffer b = /* 61 62 63 64 00 31 32 34 00 (hex) */;\nString s0 = /* read first string */;\nString s1 = /* read second string */;\n\n// `s0` will now contain \xe2\x80\x9cABCD\xe2\x80\x9d and `s1` will contain \xe2\x80\x9c124\xe2\x80\x9d.\n
Run Code Online (Sandbox Code Playgroud)\n

我已经尝试过使用Charsets.UTF_8.decode(b),但似乎这个函数忽略当前ByteBuffer位置并读取直到缓冲区末尾。

\n

有没有更惯用的方法从字节缓冲区读取此类字符串,而不是寻找包含 0 的字节并将缓冲区限制为它(或将带有字符串的部分复制到单独的缓冲区中)?

\n

java nio bytebuffer text-decoding

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

SASS/SCSS 变量不适用于 CSS 变量赋值

我有以下 SCSS 代码:

\n
@mixin foo($bar: 42) {\n    --xyzzy: $bar;\n}\nbar {\n    @include foo;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我希望我将 CSS 变量--xyzzy设置42为所有bar元素。相反,我得到的是 CSS 声明bar { --xyzzy: $bar; }。该变量未被解释。我需要使用#{\xe2\x80\xa6}语法来获取变量集。

\n

这是 SCSS/SASS 的功能吗?一个错误?我可以在不将变量名括起来的情况下进行解释吗#{\xe2\x80\xa6}

\n

实际结果:

\n
bar {\n  --xyzzy: $bar;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

预期的:

\n
bar {\n  --xyzzy: 42;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

css sass

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

带有Rust结构的枚举器

我想将此代码转换为Rust

enum Direction {
    EAST(0), WEST(180), NORTH(90), SOUTH(270);

    private Direction(final int angle) {
        this.angle = angle;
    }

    private int angle;

    public int getAngle() {
        return angle;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这就是我尝试过的:

Direction d1 = Direction.EAST;
Direction d2 = Direction.SOUTH;
Run Code Online (Sandbox Code Playgroud)

然后我被困住了.接下来我该怎么办?

enums rust

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

为什么 onChange 事件在反应中没有 event.keyCode 属性?

我正在尝试使用onChange事件和反应钩子禁用输入文本字段中的空格。我正在保存电子邮件输入状态。onChange事件中的函数调度动作,e.target作为其输入传递。然而,一旦分派发生,输入字段就会被重置。我已经测试了输入字段,它工作正常,但是当我单击键盘空间按钮然后event.keyCodeevent.which 给了我未定义的值。

import React, {useReducer} from 'react';

const initialState = {
    email: ''
};

function reducer(state, action) {
    switch (action.type) {
        case 'email':
            return {
                ...state,
                email: action.payload
            };
        default:
            throw new Error();
    }
}

const Login = () => {
    const [state, dispatch] = useReducer(reducer, initialState);
    const handleChange = (event) => {
        if (event.keyCode == 32) {
            return false;
        }
        dispatch({ type: event.target.name, payload: event.target.value.trim() });
    }
    return (
        <div className="container"> …
Run Code Online (Sandbox Code Playgroud)

reactjs

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

禁用删除析构函数的生成

我正在开发一个不使用动态内存分配的嵌入式系统程序。如何防止 GCC 生成删除析构函数D0(名称中含有损坏的析构函数)?它永远不会被调用。

\n

我认为甚至不需要删除析构函数,因为可以在其之后调用完整的对象析构函数(以损坏的名称) 。D1operator delete(\xe2\x80\xa6)

\n

在我看来,应该有一些命令行选项来禁用这些析构函数。

\n
\n

主要问题是程序调用operator delete(\xe2\x80\xa6)了删除析构函数。由于我没有任何堆管理,因此没有定义这样的函数。作为一种解决方法,我可以实现operator delete(\xe2\x80\xa6)仅报告错误,但这会浪费内存(不必要的大程序大小)并且不允许我operator delete()在编译期间捕获意外调用。

\n

c++ embedded gcc destructor freestanding

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

postgresql – Debian 上没有 crypt 功能

我的 Debian Stretch (9) 上安装了 PostgreSQL 9.6。当我想使用crypt()gen_salt()函数时,它说:

ERROR:  function gen_salt(unknown, integer) does not exist
LINE 1: select gen_salt('bf', 8)
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

我怎样才能让这些功能正常工作?


安装的 postgresql 包

postgresql debian crypt postgresql-9.6 debian-stretch

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