小编Kit*_*tes的帖子

如何指定依赖于单独类型的闭包的借用绑定的生命周期?

我有两种类型:LexerSFunction.

SFunction 代表有状态函数,并且定义如下:

struct SFunction {
    f: Option<Box<FnMut() -> SFunction>>, 
}
Run Code Online (Sandbox Code Playgroud)

重要的是,任何SFunction引用一个返回一个的闭包SFunction.

现在我希望每个影响相同的函数都具有这些函数Lexer.这意味着每个SFunctions都必须具有取决于具体的寿命Lexer.

如果你想更多地了解我正在做的事情,这里还有一些代码:

impl Lexer {
    fn lex(&mut self) {
        self.sfunction(Lexer::lexNormal).call()
    }

    fn sfunction(&mut self, f: fn(&mut Lexer) -> SFunction) -> SFunction {

        SFunction::new(Box::new(|| f(self)))
        // SFunction { f: Some(Box::new(move ||f(self))) }
    }

    fn lexNormal(&mut self) -> SFunction {
        return SFunction::empty()
    }
}
Run Code Online (Sandbox Code Playgroud)

(这是Rust操场中代码的完整版本.)

如何在代码中指定此生命周期要求?

我得到的编译器错误"无法推断self由于需求冲突而导致闭包捕获的适当生命周期".我很确定这里的"冲突要求"是一种Box类型假定生命周期'static.我可以做这样的事情Box<FnMut() -> SFunction …

lifetime rust

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

我可以使用方法或函数作为闭包吗?

我在结构上有一些方法想作为参数传递。我很确定传递函数的唯一方法是使用闭包。有没有办法我可以不做 || { self.x() }呢?

rust

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

如何清除灵丹妙药外壳?

这不是最有见地的问题,但我真的希望能够按 Control-L 并让 shell iex 清除屏幕。知道如何做到这一点,或者是否有另一个带有此内置功能的长生不老药外壳?

elixir elixir-iex

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

在 Express.js 中,在会话中存储任何数据是否安全?

我习惯于单独使用 cookie。

使用 cookie,我会保存用户名和哈希值,并在每次页面加载时执行数据库查询,以确保用户拥有正确的密码。我正准备对会话做同样的事情,当我发现会话不能被用户编辑时。

理论上,我可以说:

req.session.authenticated = true
Run Code Online (Sandbox Code Playgroud)

只需测试用户是否已通过身份验证,无需重新检查密码是否正确。

这样做安全吗?或者是否有必要存储用户名和哈希?

PS 我使用 Express 4.8.6 和 express-session 1.7.6

security cookies session node.js express

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

如何在Julia中为现有函数添加方法?

所以在Julia中,每个函数都有方法.

以下是有道理的:

f(x, y) = x + y
f(x) = x + 2
Run Code Online (Sandbox Code Playgroud)

这提供了两个附加到此功能的方法.

但是,假设我想在现有的Julia函数中添加一个方法,而不是覆盖它.

例如:

a = [2, 3]
push!(a, 4)
a == [2, 3, 4] # true

type Node
   children :: Array{Node}
end

function push!(base :: Node, child :: Node)
   push!(base.children, child)
end
Run Code Online (Sandbox Code Playgroud)

这就是我想要做的; 扩展现有功能以适应新类型.但这会引发错误.这可能吗?

methods julia

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

标签 统计

rust ×2

cookies ×1

elixir ×1

elixir-iex ×1

express ×1

julia ×1

lifetime ×1

methods ×1

node.js ×1

security ×1

session ×1