分享

GO语言结构体

 shopnc 2017-02-03

GO语言的结构体和C的基本上一样,不过在初始化时有些不一样,Go支持带名字的初始化。

示例代码如下:

package main


import (
    "fmt"
)
type Person struct {
    name string
    age  int
    address string
}
 
func main() {
    //初始化
    person := Person{"Tom", 30, "河南"}
    person = Person{name:"Tom", age: 30, address:"河南"}
 
    fmt.Println(person) //输出 {Tom 30 河南}
 
    pPerson := &person
 
    fmt.Println(pPerson) //输出 &{Tom 30 河南}
 
    pPerson.age = 40
    person.name = "Jerry"
    fmt.Println(person) //输出 {Jerry 40 河南}
}
注意:Go语言中没有public, protected, private的关键字,所以,如果你想让一个方法可以被别的包访问的话,你需要把这个方法的第一个字母大写。这是一种约定。
 
package main

import (
    "fmt"
)

type rect struct {
    width, height int
}

func (r *rect) area() int { //求面积
    return r.width * r.height
}

func (r *rect) perimeter() int { //求周长
    return 2 * (r.width + r.height)
}

func main() {
    r := rect{width: 10, height: 15}

    fmt.Println("面积: ", r.area())
    fmt.Println("周长: ", r.perimeter())

    rp := &r
    fmt.Println("面积: ", rp.area())
    fmt.Println("周长: ", rp.perimeter())
}
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多