0011-Rust-内部可变 Cell

环境

  • Time 2022-05-04
  • Rust 1.60.0

前言

说明

默认情况下,Rust 只能有一个可变引用和多个不可变引号,而 Cell 可以实现内部可变。

目标

内部可变 Cell 的方法练习。

new

fn main() {
    let cell = Cell::new(44);
    println!("{:?}", cell);
}

set

fn main() {
    let cell = Cell::new(44);
    cell.set(88);
    println!("{:?}", cell);
}

get

fn main() {
    let cell = Cell::new(44);
    println!("{:?}", cell.get());
}

swap

fn main() {
    let cell1 = Cell::new(44);
    let cell2 = Cell::new(88);
    cell1.swap(&cell2);
    println!("{cell1:?}, {cell2:?}");
}

replace

fn main() {
    let cell = Cell::new(44);
    cell.replace(88);
    println!("{cell:?}");
}

into_inner

fn main() {
    let cell = Cell::new(44);
    println!("{:?}", cell.into_inner());
}

as_ptr

fn main() {
    let cell = Cell::new(44);
    println!("{:?}", cell.as_ptr());
}

get_mut

fn main() {
    let mut cell = Cell::new(44);
    *cell.get_mut() += 44;
    println!("{:?}", cell);
}

from_mut

fn main() {
    let mut value = 44;
    let cell = Cell::from_mut(&mut value);
    println!("{:?}", cell);
}

take

fn main() {
    let cell = Cell::new(44);
    let _ = cell.take();
    println!("{:?}", cell);
}

borrow

fn main() {
    let cell = Cell::new(44);
    println!("{:?}", cell.borrow());
}

borrow_mut

fn main() {
    let mut cell = Cell::new(44);
    println!("{:?}", cell.borrow_mut());
}

总结

内部可变 Cell 的方法练习。

附录

posted @   jiangbo4444  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-07-31 【JavaScript】安装 nodejs
点击右上角即可分享
微信分享提示