当前位置:数据分析 > PHPer 眼中的 Go 语言

PHPer 眼中的 Go 语言

  • 发布:2023-10-10 09:11

Go语言是21世纪的C语言,性能接近C/C++等编译型语言,又类似于脚本语言(PHP、javascript、 Python)易于上手和学习,有Google支持,拥有强大的开发团队和活跃的社区。

Go 语言的特点

  • 简单语法
  • 语言层面支持并发编程
  • 跨平台编译
  • 自带垃圾回收机制

Go 语言语句不需要分号

package main 

import "fmt"

func main(){

s := “你好世界”

       fmt.Println(s)
}

数据类型

Go 是一种强类型语言。声明变量时需要指定变量的类型

var i int = 10

b := 10//错误

func 测试(){
秒 := 10

秒 : = "测试"//错误
}

PHP 是一种弱类型编程语言。声明变量时,不需要指定变量的类型,语言会推导它。不过,后面还是可以给变量赋值其他类型的值

$a = 10;

$a = “测试”;

for、if 和 switch

for语句、if语句和switch语句的条件体不需要括号 ()

对于 i := 0;我<10; i++ {

}

i := 10

if i == 10 {

}
x := 10

开关 x{
    
}

开关

  • PHP中的switch语句
$a = 10;
开关($a) {
    情况 10:
        回声“111”;
        断裂;
    情况  20:
        回声 “222” ;
        断裂;
}

执行开关语句

func main() {
   var level string = "B"
   var 分数 int = 90

   切换分数 {
      案例 90:等级= “A”
      案例 80:等级= “B”
      案例 50,60,70 :等级= "C"
      默认:等级= "D"  
   }

   开关 {
      案例 级别== “A” :
         fmt.Printf("优秀!n")    
      案例 级别 == “B”, 级别 == "C" :
         fmt.Printf("很好n")      
      案例级别==“D”
         fmt.Printf("及格n" )      
      case
  级别== "F":
         fmt.Printf( "不及格n" )
      默认:
         fmt.Printf("差n" );    }
   fmt.Printf("你的成绩为: %sn", 等级);
}
  • fallthrough关键字
package main

import "fmt"

func main() {
开关{
案例 假 ? case true:
FMT.println ( "2、Case 条件语句为 true" )
失败
Case False:
fmt.println("3. case 条件语句为 false")                           
case 条件语句为 true"
)
case false:
                        fmt.Println("5. case 条件语句为 false" ) )
}
}

循环

Go语言不像其他编程那样支持whiledo...while语句,也没有像其他编程那样的foreach PHP。 ,Go 中的循环 只有 for 语句

  • 正常循环
对于 i := 0;我<10; i++ {

}
  • 遍历数组、地图或切片
for k,v := 范围 arr {


}

可变可视性

在 PHP 中,如果不使用类,就没有变量可见性。所有变量均已声明:

a.php

$a = 10;

b.php

include_once("a.php");

echo $a;//输出10

如果使用类,类的成员可以因公共、受保护和私有而区分成员的可见性。

A级{

公共$a;

 私人 $b;
  
  受保护 $c ;

}

B 类延伸 A{
}

Go 语言使用包来组织代码。变量的可见性非常简单。第一个字母。是否大写可见且包装内全部可见

a.go

package my


var 用户名字符串 = "test"

var Age int = 20

const Test = "test"

常量 t = 123

b.go

package my


func GetUsername() string {
return用户名
} func GetA ge()int{
返回 getAge ( )
}

func getAge()int{
return a
}

main.go

包主

导入“我的”
导入“fmt”

功能主要(){
         fmt.Println(my.Username) ? ​​fmt.Println(my.age)//错误
              fmt.Println(my.getAge())//    
                                                                                                                       

需要编译吗?

Go静态编译语言,PHP动态脚本语言

由于脚本语言需要由解释器解释执行,因此其执行性能比编译语言差。


相关文章