相同问题go语言与php的实现对比

一、面向对象

php:

class Rectangle
{
    private $width;
    private $height;
    private $color;

    public function __construct($width, $height, $color)
    {
        $this->width  = $width;
        $this->height = $height;
        $this->color  = $color;
    }

    public function setColor($color)
    {
        $this->color = $color;
    }

    public function getColor()
    {
        return $this->color;
    }

    public function area()
    {
        return $this->width * $this->height;
    }


}

$r1 = new Rectangle(12, 2, "白色");
$r2 = new Rectangle(9, 4, "蓝色");
echo "Area of r1 is ". $r1->area()."\n";
echo "Area of r2 is ". $r2->area()."\n";

echo "Color of r2 is ". $r2->getColor()."\n";

echo "set new color\n";
$r2->setColor("绿色");
echo "Color of r2 is ". $r2->getColor()."\n";

go:

package main

import "fmt"

type Rectangle struct {
	width, height float64
	color         string
}

// 如果声明接收者为指定,当使用T类型来调用时,go会自动转换为*T,太TM聪明了
func (r *Rectangle) SetColor(color string) {
	r.color = color
}

func (r Rectangle) area() float64 {
	return r.width * r.height
}

func main() {
	r1 := Rectangle{12, 2, "白色"}
	r2 := Rectangle{9, 4, "蓝色"}

	fmt.Println("Area of r1 is: ", r1.area())
	fmt.Println("Area of r2 is: ", r2.area())

	fmt.Println("Color of r2 is: ", r2.color)
	fmt.Println("set new color")
	r2.SetColor("绿色") // 等价于(&r2).SetColor("绿色"),这里r2不需要传地址,当然,传地址也不错,只是go会自动帮助转换,没有必要
	fmt.Println("Color of r2 is: ", r2.color)
}

原创文章,作者:SNBBN,如若转载,请注明出处:https://www.beidanyezhu.com/a/26647.html

(0)
SNBBN的头像SNBBN
上一篇 2025-01-04
下一篇 2025-01-05

相关推荐

  • go语言可以用哪些框架

    go语言使用的框架有:1、Beego框架;2、Buffalo框架;3、Echo框架;4、Gin框架;5、Iris框架;6、Revel框架。 6款好用的go语言web框架: Beeg…

  • go语言怎么引入包

    go语言引入包的方法:可以直接使用【import "包名"】来引入一个包。如果需要同时引入多个包,可以使用【import {"包名" &qu…

    2025-01-07
  • go语言有什么开发工具

    go语言开发工具有:1、GoLand;2、LiteIDE;3、Eclipse。LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境。 开发工具介绍: 1、GoLand Go…

    2025-01-07
  • yum如何安装go语言

    yum安装go语言的方法:首先执行【yum -y install golang】命令安装go;然后编辑profile文件,配置环境变量;最后执行【source /etc/profi…

  • vscode如何配置go语言开发环境

    Golang 环境配置 1) 首先下载适合你系统的安装包 2)下载完成安装到指定目录即可。我这里是(D:\Go)。 3)配置Glang环境变量 进入我的电脑->高级设置-&g…

    2025-01-07
  • go语言defer怎么用

    go语言defer的用法:1、defer语句在函数返回之前或函数中的return语句之后执行;2、多个defer语句的执行顺序是逆序执行;3、在panic语句后的defer语句不执…

  • windows下如何搭建go语言开发环境

    windows下搭建go语言开发环境的方法:1、在官网下载go语言开发包;2、安装go语言开发包;3、设置GOPATH环境变量;4、测试go开发包是否安装成功。 具体步骤如下: 一…

    2025-01-07
  • go语言的7大优势是什么

    go语言的优势有:1、学习曲线容易;2、开发效率和运行效率高;3、自由高效;4、拥有强大的标准库;5、部署方便;6、高度支持并发性;7、稳定性高。 go语言的优势: 1、学习曲线容…

  • go语言指的是什么

    go语言是一种静态强类型、编译型语言,它的语法与C语言相近。go语言规定每行程序结束后不需要撰写分号,大括号不能够换行放置,if判断式和for循环不需要以小括号包裹。 详细介绍: …

  • go语言适合于什么领域

    go语言适用的领域有:1、服务器编程;2、分布式系统;3、网络编程;4、内存数据库;5、云平台;6、游戏服务端的开发。go语言是一种静态强类型、编译型语言。 Go(又称 Golan…

发表回复

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

分享本页
返回顶部