PHP To Go 转型手记 (三)

PHP To Go 转型手记 (三)

前言

作为一名PHP程序员,我感到荣幸。但在时代不断的变迁中,要具备足够的知识才可生存。

那就从Go语言学起把。

希望看到本篇文章的你可以对Go有一个基本的认识。本系列文章与我自己学习Go语言的方式去描述。以PHP代码与Go代码的对比加以区分理解。

Go没有类的概念,本章在语法使用上来对比PHP与Go之间的区别。

声明类

PHP

class User{}

Go

type User struct{}

成员变量

PHP

class User{
    public $name;
    public $age;
}

Go

type User struct {
    username string
    age      int
}

变量修饰

PHP

class User{
    public $name;
    private $age;
}

Go

// 没有看错,Go中没有保护(protected),变量名首字母大写为public,小写为private
type User struct {
    Username string
    Age      int
}

成员方法

PHP

class User{
    public $name;
    public $age;

    function setName(){

    }

    function getName(){

    }
}

Go

type User struct {
    username string
    age      int
}

func (u User) setName(name string) bool {
    u.username = name

    return true
}

func (u User) getName() string {
    return u.username
}

初始化

PHP

// php 没有构造方法的话,新建对象无需传参数
new User();

Go

// go 内结构体声明的变量是可选参数,既可传可不传,go既没有类概念,所以也没有构造方法。
User{"zhangsan",15}

使用

PHP

$user = new User();
$user->getName();

Go

u := User{"zhangsan",15}
fmt.Println(u.getName())

致谢

感谢你看到这里,希望本篇文章可以帮到你。谢谢

原创文章,作者:CrazyCodes,如若转载,请注明出处:https://blog.fastrun.cn/2018/11/05/1-75/

(0)
上一篇 2018年10月30日 下午4:09
下一篇 2018年11月8日 上午10:21

相关推荐

nameNull进行回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(4条)

  • nameNull
    nameNull 2018年11月6日 上午10:07

    话说 为什么要选择GO呢

    • crazycodes
      CrazyCodes 2018年11月6日 上午10:14

      @nameNull这没有必须或非必须,只是给将要学习Go语言的PHP程序员一点学前准备。

  • none
    none 2019年7月26日 下午1:29

    可以推荐go的一些文档,或者视频教程嘛,自己搜了一点,感觉有点乱