继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕工程3455409
关注TA
已关注
手记 318
粉丝 78
获赞 293

一、面向对象


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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP