当前位置: 首页 > news >正文

怎样登陆网站后台赣州章贡区天气预报15天

怎样登陆网站后台,赣州章贡区天气预报15天,成都全屋定制十大名牌,邯郸企业做网站推广引用与借用 上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。 fn main(){let b 3;makes_copy(b);println!("after using a variab…

引用与借用

上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。

fn main(){let b = 3;makes_copy(b);println!("after using a variable in stack {}", b);let a = String::from("hello");take_ownership(a);// a 已被moveprintln!("after using a variable in heap {}", a);
}
fn take_ownership(a:String){println!("{}",a);
}
fn makes_copy(a:i32){println!("{}",a);
}

Rust对引用的定义,即指针,实现类似于C中的取地址&,

let x = 3;
// y即x的引用
let y = &x;
// 必须解引用,否则类型不一致
assert_eq!(3,*y);

用引用类型参数代替上一篇的原参数,且默认是不可变的,
若要修改引用,则要加上可变声明,注意看变量声明、函数声明、函数调用入参形式

fn main(){let mut a = String::from("Hello");cal_len(&mut a);println!("{}",a);
}
fn cal_len(a:& mut String) -> (){a.push_str(", world!");
}

可变引用同时只能有一个
这是为了避免数据竞争,在C++多线程程序中,使用互斥锁避免争抢操作同一块内存,而Rust直接限制数据竞争。

let mut s = String::from("hello");let r1 = &mut s;
let r2 = &mut s;
// r1结束前,声明可变引用r2导致重复可变应用,编译报错
println!("{}, {}", r1, r2);

引用作用域的结束位置是该变量最后一次使用的位置

Rust避免了悬垂引用,即避免出现指针原指向的对象已被清除,但指针仍存在的风险。

fn main() {let reference_to_nothing = dangle();
}
// 如下函数错误,因为a已经被清除
fn dangle() -> &String {let a = String::from("hello");&a
}

总结,
同一时刻,你只能拥有要么一个可变引用, 要么任意多个不可变引用。
引用必须总是有效的。
如下来自 AI助手,

  1. 静态类型:Rust是一种静态类型语言,变量在声明时必须指定其类型,并且一旦指定,类型不能更改。

  2. 强类型:Rust是一种强类型语言,变量不能隐式地转换为其他类型,必须使用类型转换来显式地进行转换。

  3. 不可变性:Rust默认情况下变量是不可变的,即不能修改其值。如果需要修改变量的值,需要使用 mut 关键字来声明可变变量。

  4. 所有权:Rust中的变量具有所有权,每个值都有一个唯一的拥有者。当拥有者超出作用域时,值将被销毁。

  5. 解引用和引用:Rust中可以使用 & 符号来引用变量,以便在不拥有所有权的情况下访问其值。通过解引用操作符 *,可以使用引用来访问变量的值。

  6. 可变性引用:在Rust中,可以通过借用变量来让其它代码可以读取和修改该变量的值,但是只能在特定范围内进行,并在借用结束后返回变量的所有权。

  7. 生命周期:Rust中的变量有一个生命周期,用于限定变量的有效范围。当变量超出其生命周期时,它将被销毁。

http://www.yayakq.cn/news/114431/

相关文章:

  • 做视频解析网站犯法吗摄影网站有哪些?
  • 免费建站的网站网页游戏传奇世界
  • 天津市工商网站查询企业信息wordpress技术cms主题
  • 做外贸常用的网站有哪些网站怎么做关键词怎么优化
  • seo网站关键词排名软件手动搭建wordpress
  • 网站上怎么做动画广告视频建筑类期刊排名
  • 怎样制作做实景的网站如何做网站出单
  • 办个网站卖什么好处百度收录左侧带图片的网站
  • 网站备案需要去哪里网站开发合同验收
  • 四川省住房和城镇建设官方网站数据统计网站有哪些
  • 网页制作网站素材网站哪家公司好
  • 做网站要学点什么googlechrome浏览器
  • 张家港杨舍网站建设cn域名网站
  • 做机械设备销售的那个网站好素材下载
  • 如何才能看到国外的设计网站诸城网站建设0536s
  • 网站怎么下载视频介绍重庆网页设计
  • 安徽中小企业网站建设集团公司网站开发
  • 做网站客户改来改去wordpress优化攻略
  • 手机做直播官方网站酷家乐软件培训班
  • jsp网站开发详解书中山网站建设费用
  • 站长之家查询工具常见的旅游网络营销方式
  • 做微网站要多少钱沧州网站建设设计
  • 东莞哪家做网站比较好企业平台网站建设
  • 关于网站设计的论文上海计算机一级网页设计
  • 家教网站如何做少儿编程有没有必要学
  • 专门做产品推广ppt的网站网站建设相关的工作
  • 淄博什么兼职的网站建设专业手机网站建设公司排名
  • 乔拓云网站注册广东东莞新增本土确诊0例
  • 平台类网站做多久新浪云主机上安装wordpress主题
  • app在线开发网站建设网络服务器配置与管理