小编Hel*_*ang的帖子

与变量匹配与与占位符匹配?

fn main() {
    let f = 1;

    match f {
        foo => {
            println!("{}",foo);
        }
    };

    match f {
        _ => {
            println!("{}",f);
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

两次比赛之间有什么区别吗?(均打印1)。谁能指出我记录了第一个比赛的位置?Rust书(直到第9章)似乎只提到了占位符_,但没有提到“您可以输入任何名称(例如,foo在这种情况下)作为匹配条件”。

rust

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

Clone :: clone_from如何避免不必要的分配?

的文档clone_from说:

从源执行复制分配。

a.clone_from(&b)a = b.clone()在功能上等效,但是可以重写以重用a的资源,以避免不必要的分配。

为什么clone_from(复制分配)避免不必要的分配?有什么例子?

我认为这是C ++中众所周知的概念,但是我没有强大的C ++背景。

rust

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

为什么Vec :: iter_mut不会显示在std :: vec :: Vec的文档索引中?

https://doc.rust-lang.org/std/vec/struct.Vec.html#method.iter中

我只能iter在页面左侧的索引侧栏中找到。但是,iter_mut找不到。

谁能解释这是故意还是错误?

这很不方便,因为从电话浏览时很难搜索文本。我正在滚动浏览索引,找不到iter_mut

在此处输入图片说明

rust rustdoc

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

Parent obj = new Child(); 有道理?

在 Java 中:

Parent obj = new Child();
Run Code Online (Sandbox Code Playgroud)

我创建了一个 Parent 类型的对象。我假设我只能调用 Parent 类中定义的方法。因此,我无法调用 Child 中定义的“附加”方法或访问 Child 中定义的变量。所以我认为这是浪费内存,因为我已经新建了一个 Child 的实例,它比 Parent 需要更多的内存空间。到这一步我觉得没有意义。任何人都可以请给出一些合理的理由/例子吗?

java inheritance

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

具有多个字段的嵌入结构的字面初始化

type fun struct {}

type starcraft struct {
    *fun // embedding struct
    mu sync.Mutex
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以将初始结构 startcraft 字面化为:

f := &fun{}
s := starcraft{f, *new(sync.Mutex)}
Run Code Online (Sandbox Code Playgroud)

我不喜欢它,因为:

A。我不想自己初始化sync.Mutex

b. 在这种情况下,使用 *new(sync.Mutex) 会产生浪费的副本。

还有更好的办法吗?

go

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

Rust模式匹配如何确定绑定变量是引用还是值?

use crate::List::{Cons, Nil};

#[derive(Debug)]
struct Foo {}

#[derive(Debug)]
enum List {
    Cons(i32, Foo),
    Nil,
}

impl List {
    fn tail(&self) -> Option<&Foo> {
        match self {
            Cons(_, item) => Some(item), // why `item` is of type `&Foo`?
            Nil => None,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如评论中所述,为什么是item类型&Foo?说的item是类型&Foo而不是类型的规则是什么Foo

我理解项目是没有意义的Foo; &self表示self引用是参考,因此将值从引用中移出是没有意义的,但是是否有任何明确定义规则的规范?

pattern-matching rust

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

为什么fmt.Println(float64(1/2))显示为0?

package main

import (
    "fmt"
)

func main() {
    fmt.Println(float64(1/2))
}
Run Code Online (Sandbox Code Playgroud)

为什么打印:0

游乐场链接:https://play.golang.org/p/KGgao6n8lTA

是因为fmt.Println精度低吗?

go

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

标签 统计

rust ×4

go ×2

inheritance ×1

java ×1

pattern-matching ×1

rustdoc ×1