rust编程语言_Mozilla的Rust编程语言处于关键阶段

rust编程语言

在今年的Great Wide Open会议上 ,Steve Klabnik谈到了Mozilla的Rust编程语言 。 Klabnik以前撰写了Rust入门教程,标题为Rust for Rubyists ,这个演讲也有类似目的。 但是,这次演讲不是针对Ruby,而是针对一般程序员。 因此,演讲的主题是: $ LANGUAGE-ists的Rust

Klabnik的演讲包括三个部分。 首先,他介绍了Rust语言的起源以及有关该语言的发展方向的一些信息。 第二部分介绍了代码示例。 示例从无所不在的“ Hello World”到更复杂的示例,这些示例突出了一些使Rust与其他语言区分开的功能。 最后一部分提供了用于学习有关Rust的更多资源。

下面,我将介绍Steve Klabnik演讲中的一些要点,但我强烈建议您在YouTube上观看他的演讲阅读他的演讲中的幻灯片 。 我从他的演讲中学到了很多东西,我想你也会。

什么是锈?

Rust是一种系统语言,可以替代C ++。 从理论上讲,您可以将Rust用于要使用C ++的任何编程项目。 Rust相对于C ++的优势在于,Rust从头开始设计为“安全,并发和快速”。

Rust最初是在Mozilla工作的Graydon Hoare的个人项目。 当Mozilla想要成立研究与开发部门时,Rust成为其第一个项目。 Mozilla写了很多C ++代码,并且不得不处理C ++的缺点。 例如,在上一届Pwn2Own竞赛中Firefox中发现的所有三个漏洞都是由于C ++(例如,指针管理不当)引起的。 在Rust中,这类编程错误甚至都不会编译。

Hoare不再领导Rust的发展。 他已经从事其他项目。 Rust已达到足够成熟的开发阶段,因此即使没有原始开发人员,该项目也可以继续进行。 这并不意味着Rust是一个完全成熟的项目。 当前版本是0.10版本,新版本确实破坏了兼容性。 早期版本中的代码示例和文档可能不适用于最新版本,因此新用户可能会感到困惑。 1.0版即将推出,该版本将稳定所有内容。

Rust处于生命周期的关键时刻。 它还不完全成熟,因此可能会让某些人推迟使用它,但是它需要人们在1.0版本之前使用该语言进行改进。 该项目需要来自不同角度的人们的广泛关注,以确保Rust 1.0发行版尽可能的好。

代码示例

Rust中的Hello World:

use std::io::println;

fn main() {
    println("Hello, world");
}

这是用Rust编写的标准“ Hello World”应用程序。 对于具有任何C风格,花括号语言的经验的人来说,它应该看起来足够熟悉。 第一行导入println函数。 Main是用fn而不是intpublic static void等声明的。 Rust与C / C ++ / C#/ Java程序员习惯使用的稍有不同,但足够紧密,因此并不完全陌生。

段故障:

int main(void)
{
    char *s = "hello world";
    *s = 'H';    
}

此C ++代码将带有警告编译,但在运行时将出现段错误。 Rust旨在阻止这种情况的发生,如以下示例所示。

fn main() {
    let s = &"hello world";
    *s = "H";
}

segfault.rs:3:4 3:6 error: type &str cannot be dereferenced
sefault.rs:3    *s = "H";
                ^~
error: aborting due to previous error
task 'rustc' failed at 'explicit failure', ...

Rust不会编译,而是打印出以上错误消息。 这是Rust的优势之一。 它对安全性的关注意味着它旨在防止像上面的C ++示例中的错误那样将其转化为编译后的代码。

一个更复杂的示例:

fn main() {
    let nums = [1, 2];
    let noms = ["Tim", "Eston", "Aaron", "Ben"];
 
    let mut odds = nums.iter().map(|&x| x * 2 - 1);
 
    for num in odds {
        spawn(proc() {
            println!("{:s} says hello from a lightweight
            thread!", noms[num]);
        });
    }
}

这段代码展示了Rust的几个功能。 Rust使用let关键字定义变量。 代码的第二和第三行创建一个整数向量( nums )和一个字符串向量( noms )。 Rust支持类型推断,因此没有必要明确声明向量包含整数或字符串。 下一行突出显示了默认情况下Rust中的变量不可更改的事实。 如果要使变量可变,请使用mut关键字。 for循环看起来就像您在更现代的语言(如Ruby或Python)中看到的一样,但是它可以编译为与传统C ++ for循环相同的机器代码。 代码的spawn(proc())演示了Rust如何创建一个可以在其中运行函数的线程。 最后, println! 一行显示Rust如何处理替换。 在示例中, {:s}将被noms[num]的值替换。

我所介绍的示例仅涉及表面。 Klabnik的演示包括Rust代码的许多其他示例。 如我上面所述,他的演讲非常值得一看。 您将学到很多东西。 如果要尝试演示中的示例,只需确保下载了Rust 0.10。 当前的夜间版本已更改了某些内容,因此某些示例将不起作用。

Rust的资源

在结束他的演讲时,Klabnik建议使用以下资源来了解有关Rust的更多信息。 但是,他的确警告说Rust的官方教程“很糟糕”,并且正在被重写。

教程:

讨论:

在GitHub上查看Rust并参与其中。

翻译自: https://opensource.com/life/14/6/mozillas-rust-programming-language-critical-stage

rust编程语言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值