设为首页 加入收藏

TOP

那些C语言缺失的,我在Rust里找到了(二)
2018-03-18 16:21:40 】 浏览:826
Tags:那些 语言 缺失 我在 Rust 找到
ot;;


match color {
  "red"  => println!("it's red"),
  "green" => println!("it's green"),
  _    => println!("it's something else"),
}


你是不是很难猜出下面这个函数是干什么用的?


但如果在函数的参数上使用模式匹配,那么事情就会变得不一样:


pub struct Fubarize(pub bool);
pub struct Frobnify(pub bool);
pub struct Bazificate(pub bool);


fn my_func(Fubarize(fub): Fubarize,
      Frobnify(frob): Frobnify,
      Bazificate(baz): Bazificate) {
  if fub {
    ...;
  }


  if frob && baz {
    ...;
  }
}


...


my_func(Fubarize(true), Frobnify(false), Bazificate(true));


在Rust里,不再只是简单地返回一个布尔值表示出错与否,也不再简单粗暴地忽略错误,也不再通过非本地跳转来处理异常。


在创建新类型时(比如创建一个包含大量字段的struct),可以使用#[derive(Debug)],Rust会自动打印该类型的内容用于调试,不需要再手动编写函数去获取类型的信息。


不再需要使用函数指针了。


在多线程环境里,Rust的并发控制机制可以防止出现数据竟态条件。我想,对于那些经常写多线程并发代码的人来说,这会是个好消息。


C语言是一门古老的语言,用它来编写单处理器的Unix内核或许是个不错的选择,但对于现今的软件来说,它算不上好语言。


Rust有一定的学习曲线,但我觉得完全值得一学。它之所以不好学,是因为它要求开发者对??己所写的代码必须有充分的了解。我想,Rust是一门这样的语言:它可以让你变成更好的开发者,而且它会成为你解决问题的利器。


查看英文原文Rust things I miss in C


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spring 数据库连接(Connection).. 下一篇TensorFlow 基本用法示例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目