• 欢迎你,游客,如果喜欢我们的网站,欢迎加入我们的交流群:521584745

PHP 在初学者角度看php与rust. -- hello world

橘子

战长
管理成员
版主
2018/03/10
59
36
勋章
3
yyt home
<<开始

基本的声明变量,函数等等操作,有什么不同呢?
在上一篇,我们创建完了项目,还有了一行输出!的代码,接下来让我们看看,一些基本的操作,rust和php分别是怎么做的呢。

我们看看那段rust的Hello world的代码在php里是怎么写的呢:
PHP:
function main() {
    printf("Hello world!");
}

main(); // 由于php并不是使用main函数来作为入口,我们手动调用main函数假装一下(:razz:
首先来看看定义一个函数/方法,php使用function关键词,而rust使用fn关键词,很明显,fn就是function的简写嘛,这个很容易理解。

然后是println!这个用来输出信息到stdout,我们会发现,咦怎么有一个!感叹号呢??难道是rust的特色吗?
实际上不是的,!在rust里面表示这是一个,我们暂且可以把它当成一个特殊的函数。

好,接着我们看看如何定义一个变量:

在php,我们使用$来表示这是一个变量,
PHP:
$val = 123; // 给val变量赋值123
$val = 456; // 把val变量的值更改为456
再看看rust:
代码:
let val = 123;
首先,得用let关键词绑定一个变量,这样表示把123绑定到val变量。
众所周知,rust是一个强类型语言,但是在上面的代码里,我们并没有看到有声明类型,看起来与php差不多嘛?
实际上,上述情况里编译器可以自动推断类型,let val = 123;是等同与let val: i32= 123;的,: i32;显式声明了val变量为i32类型。
rust跟php的类型区别,请看后续文章(咕~
好了,那么现在我们来把val更改为456:
代码:
let val = 123;
val = 456; // 完蛋,编译时报错了!
噢买嘎,为什么会这样子呢?
因为rust的变量是默认不可变的,也就是说,使用let val绑定了一个变量之后,这个变量就不能改变了!!

那要怎么改变这个变量呢?很简单,只需要加上mut(Mutable ):
代码:
let mut val = 123;
val = 456;
好了,现在可以变了。(快给我变!

跟着,我们的歪歪踢同学表示要把val变量改成他的名字并发出了"草"的声音:
代码:
let mut val = 123;
val = "yyt";
因为我们val绑定了一个i32类型的值,但是歪歪踢同学却把它改成了一个字符串(&str),这是不允许的操作,
编译器娘:明明是数字类型的,渣男你怎么说变就变能改成字符串呢?

歪歪踢同学:那咋办嘛,原来的不想要了,那我们就重新绑定一个!(渣男行为
代码:
let mut val = 123;
let val = "yyt";

最后,再说一下函数的参数和返回值:
代码:
fn test_func(val: i32, s: &str) -> i32 {}
接受一个类型为i32和一个类型为&str的参数,返回一个i32类型的值。
 
红包已经领完啦!

YYT

小破站长
管理成员
版主
2018/02/09
1,263
765
勋章
6
广东,深圳
www.mcshare.net
橘子出品,必属精品,先🐴 后看,已成习惯
 

推广

Document

新主题 新资源 新留言