相同问题go语言与php的实现对比
2015-01-16 15:15
281 查看
一、面向对象
php:
go:
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语言实现的排列组合问题实例(n个数中取m个)
- php实现多语言链接的问题 <!--未测试-->
- 魔术师发牌问题GO语言实现
- 复杂事件处理两种技术实现手段的对比,规则语言 VS 持续查询语言
- php优化及高效提速问题的实现方法第1/2页
- php 通过include方式实现国际化多语言(i18n)
- php实现首页自动选择语言转跳
- 8皇后问题的c++与python实现对比
- PHP中用javascript语言实现页面跳转
- PHP通过gettext实现多语言国际化支持
- PHP网页服务实现注册和商店NPC管理(安装+搭建+使用+问题处理)
- php实现汉诺塔问题(递归)
- 搞了一天终于实现了 DataGrid 中的多国语言的问题,采用了中文向其他语言自动翻译的方法,其实不难,主要是想法(本文不涉及这个计算机技术问题,仅以此作为标题)
- PHP实现首页自动选择语言转跳
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 【转】几种不同语言实现蚁群算法的效率对比
- php实现首页自动选择语言转跳
- PHP实现首页自动选择语言转跳
- php 多语言版本实现
- php 通过include方式实现国际化多语言(i18n)