PHP To Go 轉型手記 (三)

clipboard.png

前言

作爲一名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())

致謝

感謝你看到這裏,希望本篇文章可以幫到你。謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章