小编fin*_*ian的帖子

为什么需要像 Tokio 这样的异步运行时?

我做计算机系统项目的第一次经历是使用普通 Java 构建服务器,然后在 Android 手机上构建客户端。从那时起,我发现有很多框架可以帮助管理可扩展性并消除编写样板代码的需要。

我试图了解TokioRayon等服务启用了哪些服务。

我在Tokio 教程页面上看到了这段文字,但我很难理解它

当您以异步方式编写应用程序时,可以通过降低同时执行许多操作的成本来使其能够更好地扩展。但是,异步 Rust 代码不会自行运行,因此您必须选择一个运行时来执行它。

我首先认为“运行时”可能指的是二进制文件可以运行的地方,但看起来 Tokio 只提供了 Rust 标准库中已有的函数,而 Rayon 实现了标准库中没有的函数。

标准库中异步函数的标准实现是否编写得不好,或者我不理解 Tokio 提供的服务?

rust

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

选择两个特定列均非空的行

我本质上想这样做

mrgd.query('security == security and comnam == comnam')
Run Code Online (Sandbox Code Playgroud)

但这总是错误的。

或者我想也许我可以做

mrgd.eval('security == security') & mrgd.eval(comnam == comnam')
Run Code Online (Sandbox Code Playgroud)

但这行不通。

mrgd['security'].notnull() == mrgd['comnam'].notnull()
Run Code Online (Sandbox Code Playgroud)

我想我可以做到这一点

mrgd[['security','comnam']].notnull()
Run Code Online (Sandbox Code Playgroud)

然后将生成的两列相加以获得一个整数(2 表示成功),但是执行此操作的常规方法是什么?我发现了与此类似的问题,但不完全相同。

python pandas

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

`filter(func)` 和 `filter(|x| func(x))` 有什么区别?

filter(|x| func(x))和 和有什么区别filter(func)?也许一个好的起点是了解如何filter(func)使用类似于filter(|x| func(x)). 我的代码如下所示:

fn filter_out_duplicates(vec_of_vecs: Vec<Vec<u8>>) -> Vec<Vec<u8>> {
  vec_of_vecs
     .into_iter()
     .filter(all_unique)
     .collect()
}

pub fn all_unique<T>(iterable: T) -> bool
where
   T: IntoIterator,
   T::Item: Eq + Hash,
{
   let mut unique = HashSet::new();
   iterable.into_iter().all(|x| unique.insert(x))
}
Run Code Online (Sandbox Code Playgroud)
fn filter_out_duplicates(vec_of_vecs: Vec<Vec<u8>>) -> Vec<Vec<u8>> {
  vec_of_vecs
     .into_iter()
     .filter(all_unique)
     .collect()
}

pub fn all_unique<T>(iterable: T) -> bool
where
   T: IntoIterator,
   T::Item: Eq + Hash,
{
   let mut unique = HashSet::new();
   iterable.into_iter().all(|x| unique.insert(x))
}
Run Code Online (Sandbox Code Playgroud)

但是如果我使用|x| …

iterator rust

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

在 Linux 上安装 pycairo

所以我有 venv 我想使用尚未安装的 pycairo 模块

(venv) command$ python -m pip install pycairo

Collecting pycairo
  Using cached https://files.pythonhosted.org/packages/3c/1a/c0478ecab31baae50fda9956547788afbd0ca563adc52c9b03cab30f17eb/pycairo-1.18.2.tar.gz
Installing collected packages: pycairo
  Running setup.py install for pycairo ... error
    Complete output from command /home/user/Code/manim/venv/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-gtt_9z57/pycairo/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-9arnuyr8/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/Code/manim/venv/include/site/python3.7/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.7
    creating build/lib.linux-x86_64-3.7/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.7/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.7/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.7/cairo
    running build_ext
    Package cairo was not …
Run Code Online (Sandbox Code Playgroud)

python pycairo

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

成员函数“select”的“this”参数类型为“const SelectParam”,但函数未标记为 const

我正在尝试对多态项调用函数。但我在编译时收到以下错误消息:

this成员函数“ ”的参数“ select”具有类型“ const SelectParam”,但未标记函数const

错误显示在 p->selection(*it)

std::set<Tuple>::iterator it;
for (it = tuples.begin(); it != tuples.end();) {
    for (const SelectParam* p: selectionParams) {
        bool successful = p->select(*it);
        if( !successful ) {
            it = tuples.erase(it);
        } else {
            it++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是这些类的定义方式。(我过去没有所有的 const 并且 & 就在那里,但我把它们放在了我能想到的任何地方,希望我能做出任何它想要的 const 但显然我没有解决这个问题,因为它没有改变任何东西。

在存储在父指针的子类之一中。

bool const select(Tuple const & tup) {
    bool matched = false;
    if (tup[idx] == val) {
        matched = true;
    }
    return matched;
}
Run Code Online (Sandbox Code Playgroud)

在与多态一起使用的另一个子类中

bool const …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism compiler-errors

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

激活 Julia 虚拟环境

我正在尝试弄清楚 Julia 包是如何工作的,因为我喜欢容器化环境。我真的很挣扎。

在 python 中,我会做一些事情,比如conda create env --name ds创建一个环境,然后安装我要使用的容器化包conda activate ds; conda install <packages>

我试图让 Julia 创建一个虚拟环境并没有取得多大成功。

从 Julia REPL,我可以输入]进入包管理器,然后我可以使用activate ds. 从这里我可以添加重要的包add IJulia DataFrames Plots

此时,我的环境变成了实际的文件夹,这很好。

然后我不知道该怎么做是激活我的环境,以便我可以运行using IJulia; notebook()

从 REPL 中,如果我输入activate ds它,它不知道我在说什么,即使我这样做,它cd("ds"); activate .仍然不知道我要做什么......

我查看了文档,它似乎详细说明了如何操作包,但我没有发现任何对实际运行它们有帮助的内容。

julia

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

(Julia) 将 DataFrame 列总和分配给新列

我的 DataFrame 看起来像这样

 poly-d bias      var   irreducible_error   mse
Float64 Float64 Float64 Float64 Float64
  0.0  0.186675     0.00042362   0.01  0.197262
  1.0  0.0411247    0.000571736  0.01  0.051418
  2.0  0.0434971    0.000984634  0.01  0.0545198
  3.0  1.85323e-5   0.00144489   0.01  0.011316
  4.0  4.88342e-5   0.00140199   0.01  0.0110883
  5.0  1.6811e-6    0.00220646   0.01  0.0121978
  6.0  1.05011e-5   0.00213953   0.01  0.0122632
  7.0  4.17582e-9   0.00250119   0.01  0.0119988
  8.0  0.000105478  0.00314533   0.01  0.0135444
  9.0  4.51571e-6   0.00291042   0.01  0.0127425
 10.0  1.07721e-6   0.00381774   0.01  0.0142986
 11.0  5.78187e-6   0.00398581   0.01  0.0147937
 12.0  7.96598e-7   0.00461939   0.01  0.0134817
 13.0  2.95272e-5 …
Run Code Online (Sandbox Code Playgroud)

dataframe julia

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

拆开一个类

我想创建一个类来像字典一样解压它的对象。

例如,使用字典,您可以这样做

foo = {
  "a" : 1
  "b" : 2
}

def bar(a,b):
   return a + b

bar(**foo)
Run Code Online (Sandbox Code Playgroud)

输出3

我希望能够做到这一点

class FooClass:
    def __init__(self):
        self.a = a
        self.b = b

f = FooClass()
bar(**f)
Run Code Online (Sandbox Code Playgroud)

并让它输出3

是我能找到的最相关的问题,但它没有解决这个问题,所以我认为这可能是不可能的。


目前我的解决方案是这样的:

class FooClass:
    def __init__(self):
        self.a = a
        self.b = b

    def to_dict(self):
        return {
          "a" : self.a,
          "b" : self.b
        }
Run Code Online (Sandbox Code Playgroud)
f = FooClass()
bar(**f.to_dict())
Run Code Online (Sandbox Code Playgroud)

python argument-unpacking

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

Rust 中的异步操作什么时候可以退出?

语境

我正在阅读这个博客。提供了一些代码:

async fn parse_line(socket: &TcpStream) -> Result<String, Error> {
    let len = socket.read_u32().await?;
    let mut line = vec![0; len];
    socket.read_exact(&mut line).await?;
    let line = str::from_utf8(line)?;
    Ok(line)
}

loop {
    select! {
        line_in = parse_line(&socket) => {
            if let Some(line_in) = line_in {
                broadcast_line(line_in);
            } else {
                // connection closed, exit loop
                break;
            }
        }
        line_out = channel.recv() => {
            write_line(&socket, line_out).await;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

作者声称,如果在执行 parse_line 时收到消息,parse_line则最终可能会处于损坏状态。channel

问题

什么时候可以parse_line中断?是在任何时候吗?根据我目前的理解(这可能是错误的),Rust 可以在等待语句中切换线程上的任务,但在这些点上状态会被存储,以便可以恢复工作。 …

rust rust-tokio

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

安装 Docker 时出错`https://download.docker.com/linux/ubuntu focus Release 404 Not Found`

我正在按照这些说明安装 Docker。

当我到达这个命令时:
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

我收到以下错误

Err:11 https://download.docker.com/linux/ubuntu focal Release 404 Not Found [IP: 2600:9000:2177:b200:3:db06:4200:93a1 443] Reading package lists... Done E: The repository 'https://download.docker.com/linux/ubuntu focal Release' does not have a Release file.

linux docker

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

Typescript 认为对象可能未定义,即使它已定义

我发现了一个名称相似的帖子,尽管问题不同。

我正在尝试计算对象列表中某个属性的出现次数。

let objArray = [{state: 'North Carolina'},{state: 'Florida'}]

let res = new Map<string, number>();
for (let obj of objArray) {
    if (res.get(obj.state)) {
      res.set(obj.state, res.get(obj.state)+1)
    } else {
      res.set(obj.state, 1)
    }
}
Run Code Online (Sandbox Code Playgroud)

但打字稿标志res.get(obj.state) + 1可能res.get(obj.state)undefined(我认为这是不可能的)。

我也同样可以接受let res = {},但是当我为该打字稿编写类似的代码时,我不喜欢尝试res通过string.

我对打字稿期望我做什么来完成我的简单任务感到有点茫然。

typescript

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

如何在 Vercel 上托管 Next.js 静态网站而不运行构建?

我制作了一个完全静态的网站。我可以通过在本地运行以下命令来获取输出文件

next build && next export生成一个输出文件夹out

我想简单地将out文件夹放在 Vercel 上,但我不知道该怎么做。当我将 GitHub 存储库连接到 Vercel 时,它想要构建整个项目,但我只想给它文件out夹,而不让它运行构建过程。

next.js vercel

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