在C
中,当sendto
在UDP socket
(未绑定)上被调用时,它隐式地将套接字绑定到某个端口.这在Rust
和UdpSocket::send_to
也是一样的吗?如果是,那么这个方法会改变调用send_to
的UdpSocket
,但是send_to
要求参数的类型是&self
,而不是&mut self
,这就像是矛盾的.
在C
中,当sendto
在UDP socket
(未绑定)上被调用时,它隐式地将套接字绑定到某个端口.这在Rust
和UdpSocket::send_to
也是一样的吗?如果是,那么这个方法会改变调用send_to
的UdpSocket
,但是send_to
要求参数的类型是&self
,而不是&mut self
,这就像是矛盾的.
因为UdpSocket::send_to
只是uses c::sendto
internally,所以行为完全相同.
*Socket
类型不需要可变引用来做任何事情,因为操作系统正在执行任何所需的锁定,所以所有这些类型都使用一种内部可变性的形式来完成它们的工作,这是操作系统接口中的一个共同主题,&File
例如also implements Read
,尽管大多数方法需要独占引用.