当前位置: 首页 > news >正文

广州新塘做网站做网站考什么赚钱

广州新塘做网站,做网站考什么赚钱,公司网站的建设怎么做,网站开发综合课程设计先思考一个问题#xff0c;什么是方法#xff0c;什么是函数#xff1f; 方法是从属于某个结构体或者非结构体的。在func这个关键字和方法名中间加了一个特殊的接收器类型#xff0c;这个接收器可以是结构体类型的或者是非结构体类型的。从属的结构体获取该方法。 函数则…先思考一个问题什么是方法什么是函数 方法是从属于某个结构体或者非结构体的。在func这个关键字和方法名中间加了一个特殊的接收器类型这个接收器可以是结构体类型的或者是非结构体类型的。从属的结构体获取该方法。 函数则没有这种从属关系。 func (t Type) methodName(parameter list) { } type Teacher struct {name stringsalary intcurrency string }// 在结构体类型上创建一个方法并调用。 func (tea Teacher) testSalary() {fmt.Printf(Salary of %s is %d %s, tea.name, tea.salary, tea.currency) }func testUpFun() {tea: Teacher{name: malou,salary: 10666,currency: 元,}tea.testSalary() } 相同的名字的方法可以定义在不同的类型上而相同名字的函数是不允许的 // Rectangle 定义Rectangle结构体 type Rectangle struct {length intwidth int }// Circle 定义Circle 结构体 type Circle struct {radius float64 }func (rectangle Rectangle) Area() int {return rectangle.width * rectangle.length }func (circle Circle) Area() float64 {return math.Pi * circle.radius * circle.radius }func testArea() {r : Rectangle{width: 10,length: 20,}fmt.Printf(Area is %d\n, r.Area())c : Circle{radius: 12,}fmt.Printf(Area is %f\n, c.Area()) } 值接收器和指针接收器之间的区别在于在指针接收器的方法内部的改变对于调用者是可见的然而值接收器的情况不是这样的。 // Dog struct type Dog struct {name stringage int }// 使用值接收器的方法 func (d Dog) changeDogName(newName string) {d.name newName }// 使用指针接收器的方法 func (d *Dog) changeAge(newAge int) {d.age newAge }func testPointerStruct() {d : Dog{name: 金mao,age: 22,}// 并没有改变实际的值只是改变的变量的副本fmt.Printf(before change is %s\n, d.name)d.changeDogName(马犬)fmt.Printf(after change is %s\n, d.name)// 改变的是变量本身的值fmt.Printf(before change is %d\n, d.age)d.changeAge(11)fmt.Printf(after change is %d\n, d.age) } 那什么时候使用指针接收器什么时候使用值接收器指针接收器可以使用在对方法内部的接收器所做的改变应该对调用者可见时。当拷贝一个结构体的代价过于昂贵的时候比如说结构体中有很多字段如果方法内使用这个结构体做为值接收器需要拷贝整个结构体这个代价十分昂贵这种情况下使用指针接收器结构体不会被拷贝只会传递一个指针到方法的内部。在其他的所有情况值接收器都可以被使用。在方法中使用值接收器 和 在函数中使用值参数type rectangle struct {width intlength int } // 函数中的参数值类型只能传递一个值类型 func area(r rectangle) {fmt.Printf(Area Function result :%d\n, r.length*r.width) }func (r rectangle) area() {fmt.Printf(Area Method result :%d\n, r.length*r.width) }func testFunAndMethod() {r : rectangle{width: 10,length: 15,}area(r)r.area()p : r// (*p).area(),go解释器会自动的解引用p.area() }// 在方法中使用指针和在函数中使用指针参数 func (r *rectangle) perimeter() {fmt.Printf(Area Method result is %d\n, r.width*r.length) }func perimeter(r *rectangle) {fmt.Printf(Area Function result is %d\n, r.width*r.length) }func testPointerStruct1() {r : rectangle{width: 12,length: 10,}p : rperimeter(p)p.perimeter()// r.perimeter() 解释为 (r).perimeter() 还有一种是(*p).name 相互解引用从指针p-(*p)从值r到指针(r)r.perimeter() } 小结 大多数方法都使用的是结构体从属注意传递的是值传递还是指针传递。
http://www.w-s-a.com/news/283290/

相关文章:

  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1
  • 爱网站查询怎么做网站的图片跳转
  • 阿里云建站百度收录吗北京的设计公司排名