• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~

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

橘子

栈长

注册
2018/03/10
消息
59
金粒
7,117金粒
<<开始

基本的声明变量,函数等等操作,有什么不同呢?

在上一篇,我们创建完了项目,还有了一行输出!的代码,接下来让我们看看,一些基本的操作,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类型的值。
 
橘子出品,必属精品,先? 后看,已成习惯
 

在线会员

  • 8848yyds
  • 天尽头
  • xiaobei
  • MrXiaoM
  • pjhuc
  • 毒蘑菇
  • Moz233
  • isuo
  • C ZZ
  • Xhl_laser
  • 小板栗
  • HiTech0926
  • ymz
  • 却冰瑶
  • 椰奶冻冻UwU
  • qwqw
  • 没钱的山海
  • alieleanor
  • Mutike
  • kygomc
...和 2 更多。
后退
顶部 底部