Go语言和PHP简单对比

PHP vs Go:基础语法对照表
功能/概念 PHP示例 Go示例 差异说明
文件头 <?php package main Go必须用package定义报名,主程序必须是main
入口函数 自动从上到下执行 func main(){} Go的主函数必须是main()
输出  echo "hello"; fmt.Println("hello") Go需导入fmt包,函数名区分大小写
语句结束符 必须写; 自动添加,不需要写;(一行多个语句时需要) Go编译器自动补全
导入库 use Some\Lib;或自动加载 import "fmt" Go必须眼红双引号,不能单引号
函数定义 function add($a,$b){  return $a+ $b;} func add (a int,b int){ return a + b} Go必须定义参数类型和返回类型
变量声明 $a=10; a:=10或 var a int  = 10 Go是强类型语言,必须类型推断
字符串连接 $a . "text" $a + "text" Go使用+连接字符串
数组 $arr =[1,2,3] arr :=[]int{1,2,3} Go数组固定大小;切片更常用
条件语句 if($a >0) {} if a >0 {} Go没有()包裹条件
循环语句 foreach($arr as $v){} for_, v:= range arr{} Go使用range遍历切片/数组/map
类和方法 class User { function login() {}} type User struct { } func (u User) login() {} Go没有class ,使用struct + 方法
Web服务 Ngin+PHP-FPM调用PHP文件 使用net/http启动服务 ListenAndServe Go是自己实现Web服务,无需Nginx
并发处理 多线程/异步需扩展支持 如swoole 使用go func()启动协程,内置支持 Go并发是语言级特性
错误处理 try{}catch(Exception $e){} if err != nil {return err} Go没有异常机制,使用多返回值处理错误
部署方式 解释运行PHP-FPM 编译为二进制文件,直接运行 Go是编译型语言,部署更轻量
依赖管理 composer composer.json Go Modules go.mod 类似作用,不同工具
posted @ 2025-06-19 15:32  X__cicada  阅读(31)  评论(0)    收藏  举报