小编xet*_*a11的帖子

在Rust中结束可变借用有哪些选择?

我正在努力与借阅检查员 - 不知道为什么.

虽然我通过添加一个闭包找到了一个解决方案,但我很好奇是否有其他方法可以结束可变借用,因此下一个语句可以在之后访问绑定.

这是我到目前为止所做的:

let mut canvas: Canvas = Canvas {
    width: 5,
    height: 5,
    array: vec!['x'; 5*5],
};

{
    let mut renderer: CanvasRenderer = CanvasRenderer::new(&mut canvas);

    renderer.render_point('x', 3, 3);
}

println!("The Value in the array is: {}", canvas.array[9]);
Run Code Online (Sandbox Code Playgroud)

我在一个CanvasRenderer对象的绑定周围包裹了一个闭包,在改变了画布并且范围结束之后,可以读取CanvasRenderer模具和我的可变借用canvas或其他任何东西.

这有效 - 但现在我想看到其他解决方案!

我听说过,drop(stuff)但它没有按照我的想法行事.

rust borrow-checker

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

如何在 Rust 中映射 vec 并使用带有模式匹配的闭包

我想用来map迭代数组并对每个项目执行操作并摆脱 for 循环。我不明白的错误阻止了我的尝试。我想要实现的是迭代向量i32并匹配它们以将字符串与字符串文字连接起来,然后在最后返回它。

功能:

pub fn convert_to_rainspeak(prime_factors: Vec<i32>) -> String {
    let mut speak = String::new();
    prime_factors.iter().map(|&factor| {
        match factor {
            3 => { speak.push_str("Pling"); },
            5 => { speak.push_str("Plang"); },
            7 => { speak.push_str("Plong"); },
            _ => {}
        }
    }).collect();
    speak
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

输出:

pub fn convert_to_rainspeak(prime_factors: Vec<i32>) -> String {
    let mut speak = String::new();
    prime_factors.iter().map(|&factor| {
        match factor {
            3 => { speak.push_str("Pling"); },
            5 => { speak.push_str("Plang"); },
            7 => …
Run Code Online (Sandbox Code Playgroud)

closures iterator filtering pattern-matching rust

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

结构需要一辈子,因为?

(每个声明标有?的声明都要声明)

我只是慢慢地生活.

由于生命周期省略有助于省略明确描述生命周期(),因此我们需要对其进行描述.

一个例子可能是一个包含引用的结构:

struct Person<a'>{
car: &'a Car
}
Run Code Online (Sandbox Code Playgroud)

我是否正确,以下假设:

struct是一种值类型 - 因此它的内存位于堆栈中.在使用此结构的范围结束后 - 结构将死亡.但是因为这个结构保存了对Car的引用,并且这个引用可能被借用到其他地方 - 只要Car引用正在使用中,struct就必须保持活着状态.终身"一所以告诉人结构来维持生命,只要汽车在使用中.( ?)

说实话,我不相信上面的这个陈述.因为在生锈寿命的其他定义我的理解是这样-这辆车需要活下去,至少只要"一个这样的人不会有悬摆指针.

struct lifetime rust

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

如何在PIXI.js中镜像精灵

我需要按其底线翻转一个精灵。我知道有一种方法可以通过scale属性翻转它。但这只是我中心的一个翻转。搜索Pixi.js文档也没有帮助。

mirroring pixi.js

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

如何将文本对象居中放置在 PIXI.js 的本地容器中

请查看以下 JSFiddle:https ://jsfiddle.net/r4yfozsw/1/

var stage = new PIXI.Container(),
    renderer = PIXI.autoDetectRenderer(640, 480),
    loader = PIXI.loader,
    resources = loader.resources;

var menu = createMenu();

document.body.appendChild(renderer.view);
stage.addChild(menu);

//Render the stage
loop();


function loop(){
    setInterval(() => {
          renderer.render(stage);
      }, 1000/10 );
 }

function createMenu(){
    var buttons = new PIXI.Container();
    buttons.addChild(createButtonEndTurn());
    return buttons;
}

function createButtonEndTurn(){
    var buttonText = new PIXI.Text("End Turn",
                                   {
                                       fontFamily : 'Arial',
                                       fontSize: 24,
                                       fill : "white",
                                       align : 'right'
                                   });
    var buttonEndTurn = new PIXI.Graphics();

    buttonEndTurn.beginFill(0xFF2342);
    buttonEndTurn.drawRect(400,300,150,100);
    buttonEndTurn.endFill();
    buttonEndTurn.interactive …
Run Code Online (Sandbox Code Playgroud)

javascript text pixi.js

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

在vue组件中使用普通的javascript文件?

我有一个名为的文件Helper.js,其中包含使用某些库的函数。现在我有一个TestComponent.vue文件并想使用这个辅助函数。我怎样才能注入这个功能?

我尝试使用直接在 Components 块中使用的库Helper.js,但似乎 vue 在包含任何库之前运行,无论 index.html 标签的顺序如何。

如何使用 .js 文件或其他库

vue.js

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

Spock数据驱动测试用类来测试"instanceof"断言

我有一个测试,我想测试一个特定的结果是一种类.使用instanceof关键字断言.遗憾的是,我没有弄清楚如何在数据表中实际提供数据值expectedClass而没有实际使用instanceof调用它的问题.我认为关键字instanceof是这里的问题,因为它只接受类/接口名称.知道如何以其他方式测试我想测试的内容吗?

class BattleResolverFactoryTest extends Specification {

    def uut = new BattleResolverFactory()

    @Unroll
    def "should return proper BattleResolver for given ConflictType"(Conflict.ConflictType conflictType, Class<? extends BattleResolver> expectedInstance) {
        when:
        def battleResolver = BattleResolverFactory.getResolver(conflictType)
        then:
        battleResolver instanceof expectedClass
        where:
        conflictType                            | expectedClass
        Conflict.ConflictType.INFANTRY_CONFLICT | TestInfantryResolver
        Conflict.ConflictType.ARMOR_CONFLICT    | TestArmorResolver

    }
}
Run Code Online (Sandbox Code Playgroud)

groovy unit-testing spock

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

如何在 IntelliJ 中删除旧的/关闭的任务

我在 IntelliJ 中有以下任务菜单。我想要的是完全清除它。我不在乎是否必须删除设置文件夹或类似的东西。但我希望它被清除。删除每一个任务不是一种选择,因为有数百个。我发现它必须在 .idea 文件夹或设置中,因为我已经新安装了 IntelliJ

在此处输入图片说明

intellij-idea

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

由于InvalidDefinitionException,javamoney的CurrencyUnit不能用作字段的类并被Jackson反序列化

CurrencyUnit我有一个 pojo,它有一个来自 javamoney 库的类型字段。当我编组这个 pojo 时,杰克逊抛出了一个异常。我记得当我没有定义任何默认构造函数时出现此异常。但在这种情况下,我无法维护该类,CurrencyUnit因为它来自依赖项。我怎样才能继续这项工作?

例外:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `javax.money.CurrencyUnit` (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information\n at 
Run Code Online (Sandbox Code Playgroud)

java jackson java-money

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

Google Stackdriver - 如何在一个视图中显示多个容器的日志?

我目前正在使用 Google Stackdriver(新布局!)来调查我的日志记录。就我而言,有三个服务相互通信。我很乐意看到他们以最方便的方式以我的信息记录的形式彼此之间进行通信。

FooService > BarService > SnickerService

现状

目前我只能看到其中一项服务的日志。因此,我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我找出FooService开始调用的时间戳/范围BarService。这个时间范围我适用于其他剩余的两项服务。这样我就可以了解流程如何在这些服务之间分配。

然而这种方法每次设置都非常尴尬

这让我想到一个问题:我是否可以将三个容器的日志记录放入一个 Stackdriver 视图中?

在日志查询中我看到这个字段(例如 FooService)

resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
Run Code Online (Sandbox Code Playgroud)

问题

  • AND这里有办法做手术吗?
  • 还有一种方法可以“搜索”pod吗?目前,我总是必须深入研究我的工作负载并挖掘 pod id(上面的示例:bd4c9bf4d-nv4k2),以便我可以在查询中使用它。通过这样做,我只需点击View LogsGoogle Cloud Console 就会更快。所以恕我直言,这并不是一个快速的方法。

google-cloud-platform google-cloud-stackdriver

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