资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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

一、面向对象

创新互联是一家以重庆网站建设公司、网页设计、品牌设计、软件运维、seo优化排名、小程序App开发等移动开发为一体互联网公司。已累计为搅拌罐车等众行业中小客户提供优质的互联网建站和软件开发服务。

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)
}

文章名称:相同问题go语言与php的实现对比
新闻来源:http://cdkjz.cn/article/gdsihs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220