小编Har*_*olt的帖子

具有可为空的Option字段的Rust结构

在python中,我可能有一个看起来像这样的类:

class ClientObject(object):

    def __init__(self):
        connection = None
        connected = False

    def connect(self):
        self.connection = new Connection('server')
        self.connected = True

    def disconnect(self):
        self.connection.close()
        self.connection = None
        self.connected = False
Run Code Online (Sandbox Code Playgroud)

我正在尝试做类似生锈的事情.首先,我怀疑这是否是一个生锈的好模式 - 你会用这种方式实现一个连接的客户端类吗?其次,我收到一个错误,我不理解我的实现.

pub struct Client {
    seq: int,
    connected: bool,
    socket: Option<UdpSocket>
}

impl Client {

    pub fn connect(&mut self, addr: &SocketAddr) -> ClientConnectionResult {
        match self.socket {
            Some(_) => self.disconnect(),
            None => ()
        };

        self.socket = match UdpSocket::bind(*addr) {
            Ok(s) => Some(s),
            Err(e) => return Err(to_client_error(e))
        };

        self.connected = …
Run Code Online (Sandbox Code Playgroud)

optional rust

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

标签 统计

optional ×1

rust ×1