步驟:編程
1)聲明(定義)結構體,肯定結構體名
2)編寫結構體的字段
3)編寫結構體的方法安全
學生案例:get
1)編寫一個Student結構體,包含name、gender、age、id、score字段,分別爲string、string、int、int、float64類型。string
2)結構體中聲明一個say方法,返回string類型,方法返回信息中包含全部字段值。it
3)在main方法中,建立Student結構體實例(變量),並訪問say方法,並將調用結果打印輸出。變量
案例演示:終端
type Student struct {
Name string
Gender string
Age int
Id int
Score float64
}float
func (student *Student) say() string {
infoStr := fmt.Sprintf("student的信息 name=[%v] gender=[%v] age=[%v] id=[%v] score=[%v]",
student.Name, student.Gender, student.Age,
student.Id, student.Score)
return infoStr
}程序
func main() {
var stu = Student{
Name : "tom",
Gender : "male",
Age : 18,
Id : 1000,
Score : 99.98,
}
str := stu.say()
fmt.Println(str)
}方法
小狗案例:
1)編寫一個Dog結構體,包含name、age、weight字段
2)結構體中聲明一個say方法,返回string類型,方法返回信息中包含全部字段值。
3)在main方法中,建立Dog結構體實例(變量),並訪問say方法,將調用結果打印輸出。
案例演示:
type Dog struct {
Name string
Age int
Weight float64
}
func (dog *Dog) say() string {
infoStr := fmt.Sprintf("dog的信息 name=[%v] age=[%v] weight=[%v]",
dog.Name, dog.Age, dog.Weight)
return infoStr
}
func main() {
var stu = Dog{
Name : "jim",
Age : 4,
Weight : 32.2,
}
str := stu.say()
fmt.Println(str)
}
盒子案例:
1)編程建立一個Box結構體,在其中聲明三個字段表示一個立方體的長、寬和高,長寬高要從終端獲取
2)聲明一個方法獲取立方體的體積。
3)建立一個Box結構體變量,打印給定尺寸的立方體的體積。
案例演示:
type Box struct {
len float64
width float64
height float64
}
func (box *Box) getVolumn() float64 {
return box.len * box.width * box.height
}
func main() {
var box Box
box.len = 1.1
box.width = 2.0
box.height = 3.0
volumn := box.getVolumn()
fmt.Printf("體積爲=%.2f", volumn)
}
景區門票案例:
1)一個景區根據遊人的年齡收取不一樣價格的門票,好比年齡大於18,收費20元,其它狀況門票免票。
2)請編寫Visitor 結構體,根據年齡段決定可以購買的門票價格並輸出
案例演示:
type Visitor struct {
Name string
Age int
}
func (visitor *Visitor) showPrice() {
if visitor.Age >= 90 || visitor.Age <= 8 {
fmt.Println("出於安全考慮,拒絕進入")
return
}
if visitor.Age > 18 {
fmt.Printf("遊客的名字爲%v 年齡爲%v 收費20元 \n", visitor.Name, visitor.Age)
} else {
fmt.Printf("遊客的名字爲%v 年齡爲 %v 免費 \n", visitor.Name, visitor.Age)
}
}
func main() { var v Visitor for { fmt.Println("請輸入你的名字") fmt.Scanln(&v.Name) if v.Name == "n" { fmt.Println("退出程序...") break } fmt.Println("請輸入你的年齡") fmt.Scanln(&v.Age) v.showPrice() }}