根据开发者社区网站显示TIOBE公布了6月份编程语言排行榜,相较于今年的5月份,C语言6月份仍然位居第一名,随后分别是Java、Python、C++、C#,RUST语言从第10位上升到第9位,所以是C语言含金量更高。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。rust上用搜狗输入法打字无法显示是因为输入法设置有问题。
右键点击搜狗皮肤,设置属性,查看全屏程序时隐藏状态栏是否已勾选,去掉它试试看。
rust语言是一种高效、可靠的通用高级语言。它是一种兼顾开发效率和执行效率的语言。模式匹配 (更加抽象了一些逻辑的实现)
Rust
fn is_alpha_numeric(cc: u8) -> bool {
match cc {
97122 | 6590 | 4857 => {
true
}
_ => {
false
}
}
}
JavaScript
function isAlphaNumeric(cc) {
// a - z
if (97 <= cc && cc <= 122) return true;
// A - Z
if (65 <= cc && cc <= 90) return true;
// 0 - 9
if (48 <= cc && cc <= 57) return true;
return false;
}
宏
macro_rules! vec {
($elem:expr; $n:expr) => (
$crate::vec::from_elem($elem, $n)
);
($($x:expr),) => (
<[_]>::into_vec($crate::boxed::Box::new([$($x),]))
);
($($x:expr,)) => (vec![$($x),])
}
虽然很多争议,有些人说会有性能开销。
但有时候很方便。要少写很多代码。
泛型
impl <T> GenVal<T> {
fn value(&self) -> &T { &self0 }
}
虽然个人不太喜欢这个东西。但很多人觉得这是 Rust 的一个卖点。
接口和对象
trait Interface {
fn exposed(&self, a: &str) -> bool;
}
struct Implementation {
value: i32,
has: bool,
}
impl Interface for Implementation {
fn exposed(&self, a: &str) -> bool {
if selfvalue == 0 {
true
} else {
false
}
}
}
fn main() {
let i = Implementation {
value: 1,
has: false,
};
println!("{:}", iexposed("1"));
}
如果说其他有点酷的事,或许就是不用垃圾回收器,保证不出现内存泄露的问题。
很适合做游戏引擎,或者那些要求性能高,无延迟,同时又需要数据安全的事情。rust可以只有两个人联机。玩家进行组队的方法是玩家首先打开背包,此时玩家可以看见左下角有创建队伍的按钮,玩家点击后即可创建。当队伍被创建后玩家遇到其他玩家时长按E即可邀请对方加入队伍。特性对象中有一部分特性是自动特性,rust里的自动特性有Send Sync Unpin UnwindSafe RefUnwindSafe。
自动特性的自动就是说当代码在需要任何这五个特性的时候如果没有写上,编译器会根据一些规格给加上。其实也就是一些推导的过程,并不复杂。
当引用一个类型,引用可变类型,解构常量类型,解构可变类型,数组类型重复表达式中的类型,切片类型等这些类型实现了任意以上五个特性,这些类型就会自动具有这些特性。
函数项类型包括函数名称,类型参数,早期生命时间参数等能够标识这个函数的所有部分,以及泛型参数。
结构,枚举,联合,元祖类型只有所有的字段都实现了自动特性它们就具有自动特性。
闭包只有所有值和共享引用的类型实现了自动特性它就具有自动特性。
对于泛型如果类型参数实现Sync特性,编译器会为这个引用类型实现Send,如果类型是Send则编译器不会去实现Send。
自动特性可以有负实现,就是实现的时候在特性前面加上!号。意思就是类型实现了自动特性引用或者解构的可变及不可变反而是去除了这个自动特性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)