当前位置:   article > 正文

php转go还是前端,我为什么从php转go?

php转前端

今天有个同学问我,为什么从php转go?

此前没认真的去思考过,在此记录下我理解的go相比较于php的一些优势

此文并无贬低php之意,php也曾意气风发过

运行环境简单

golang官方提供了明确的环境安装方式

php市面上选择较多,无统一的方式

php环境搭建

用过php的至少都能搭建个wamp或者lamp环境,但是没有一个官方的环境谁又没有在安装环境时遇到过各种坑呢~

当然市面上有很多集成环境比如phpstudy、wampserver 等

golang环境搭建

在官网(或国内镜像)下载安装器,一直点下一步即可

语法简洁且统一

php关键词较多,数量为go的3倍

go强语法限制且自带有gofmt格式化代码

php无强制限制,导致每个人写出的格式都不太一样

go变量和函数访问限制的方式相对简单

php关键词(共75个)

__halt_compiler(), abstract, and, array(), as, break, callable (as of PHP 5.4), case, catch, class, clone, const, continue, declare, default, die(), do, echo, else, elseif, empty(), enddeclare, endfor, endforeach, endif, endswitch, endwhile, eval(), exit(), extends, final, finally (从PHP 5.5开始), for, foreach, function, global, goto (从PHP 5.3开始), if, implements, include, include_once, instanceof, insteadof (从PHP 5.4开始), interface, isset(), list(), namespace (从PHP 5.3开始), new, or, print, private, protected, public, require, require_once, return, static, switch, throw, trait (从PHP 5.4开始), try, unset(), use, var, while, xor, yield (从PHP 5.5开始)

__CLASS__, __DIR__ (从PHP 5.3开始), __FILE__, __FUNCTION__, __LINE__, __METHOD__, __NAMESPACE__ (从PHP 5.3开始), __TRAIT__ (从PHP 5.4开始)

go关键词(共25个)

break, default, func, interface, select, case, defer, go, map, struct, chan, else, goto, package, switch, const, fallthrough, if, range, type, continue, for, import, return, var

php无强语法限制

// 大括号可接在方法后面也可以另起一行

function test1() {

}

function test2()

{

}

go 强语法限制且自带有gofmt格式化代码

// 方法后的大括号只能和方法名同行

func main() {

}

php 属性和方法访问的限制

// 用关键词声明

public $name="自身、子类、实例中均可使用"

protected $name = "自身及子类能使用"

private $name="只有自身能使用"

go变量和函数访问的限制

// 用首字母的大小写区分

var name = "包内才能访问"

var Name = "包外也可以访问"

包管理

php包管理

使用composer进行第三方包管理,如果要使用,需要去先去专门的第三方网站发布自己的包

使用composer init初始化项目

使用composer install 包名引入第三方包

使用composer dump-autoload自动加载引入的第三方包

在需要用到的地方use,然后new一个实例,就可以调用其方法了

go包管理

官方提供了go mod进行包管理,包可以发布在任意网站上

使用go mod init 当前包名初始化项目

使用go get 包网址引入包

在需要使用的地方import即可使用

运行效率

这里使用快速排序法来对1000000个随机数进行排序及验证

然后统计运行时间和使用的空间

不使用官方自带的排序算法,代码有点长,代码放在github上

运行结果

go使用的内存为php的1/5

go使用的时间为php的1/10

d8167f9a2d90126281bc0c8552ec9329.png

前一篇文章中有我学习go的一些历程,刚开始学习的小伙伴可以参考下

本作品采用《CC 协议》,转载必须注明作者和本文链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/432914
推荐阅读
相关标签
  

闽ICP备14008679号