小编Bri*_*ian的帖子

Rust 为 u8 枚举实现 try_from

我有以下代码,我需要在排名之间进行直接比较。例如,我需要能够做到self as u8 + 1 == other as u8

#[derive(Copy, Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
#[repr(u8)]
pub enum Rank {
    Ace = 1,
    Two,
    Three,
    Four,
    Five,
    Six,
    Seven,
    Eight,
    Nine,
    Ten,
    Jack,
    Queen,
    King,
}

impl TryFrom<u8> for Rank {
    type Error = ();

    // TODO: replace with macro or find better option
    fn try_from(v: u8) -> Result<Self, Self::Error> {
        match v {
            x if x == Rank::Ace as u8 => Ok(Rank::Ace),
            x if x == …
Run Code Online (Sandbox Code Playgroud)

rust

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

为什么不能在__init__关键字arg中使用类变量?

我找不到关于何时类可以引用自身的任何文档.在下面它将失败.这是因为该类已经创建但直到__init__第一行之后才初始化,对吗?

class A(object):
    class_var = 'Hi'
    def __init__(self, var=A.class_var):
        self.var = var
Run Code Online (Sandbox Code Playgroud)

所以在我想做的用例中,这是最好的解决方案:

class A(object):
    class_var = 'Hi'
    def __init__(self, var=None)
        if var is None:
            var = A.class_var
        self.var = var
Run Code Online (Sandbox Code Playgroud)

任何帮助或文档赞赏!

python variables class keyword-argument

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

在 golang 中安全关闭文件描述符

另一个问题如何使用 Go 读取/写入文件?在评论中安全关闭文件描述符。

\n
\n

请注意,这些示例并未检查从 fo.Close() 返回的错误。从 Linux 手册页 close(2) 来看:不检查 close() 的返回值是一个常见但严重的编程错误。很可能在最后的 close() 中首先报告先前 write(2)\n 操作的错误。关闭文件时不检查\n返回值可能会导致数据无提示丢失。\n在使用 NFS 和磁盘配额时尤其可以观察到这一点。\xe2\x80\x93 尼克\n克雷格-伍德 2013 年 1 月 25 日 7:12

\n
\n

更新帖子的解决方案使用了恐慌:

\n
// close fo on exit and check for its returned error\ndefer func() {\n    if err := fo.Close(); err != nil {\n        panic(err)\n    }\n}()\n
Run Code Online (Sandbox Code Playgroud)\n

我想将此错误作为一个值传递,而不是惊慌失措。

\n

go

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

标签 统计

class ×1

go ×1

keyword-argument ×1

python ×1

rust ×1

variables ×1