91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang 結構體的嵌入類型和接口

發布時間:2020-07-30 08:16:13 來源:網絡 閱讀:4539 作者:欺世 欄目:開發技術

結構體的嵌入類型


1、嵌入結構體1

package main

import "fmt"

type Person struct {
	name string
}

type Student struct {
	class int
	person Person         //定義person 類型為Person
}


func main(){
	s := Student{1,Person{"xiaoming"}}
	fmt.Println("name :",s.person.name)  //訪問嵌入結構體的變量

}
//執行結果:
name : xiaoming

2、嵌入結構體2

package main

import "fmt"

type Person struct {
	name string
}

type Student struct {
	class int
	Person          //我們直接將Person引入到Student
}


func main(){
	s := Student{1,Person{"xiaoming"}}
	fmt.Println("name :",s.name)  //訪問時可以直接訪問s.name 而不需要s.person.name

}
//執行結果:
name: xiaoming

接口


1、定義接口

在go語言中,接口是定義了類型一系列方法的列表,如果一個類型實現了該接口所有的方法,那么該類型就符合該接口

package main

import "fmt"
import "math"


type Shape interface {
	area() float64

}

type Rectangle struct {
	width float64
	height float64
}

type Circle struct {
	radius float64
}

func (r Rectangle) area() float64 {
	return r.height * r.width
}

func (c Circle) area() float64 {
	return math.Pi * math.Pow(c.radius,2)
}

func getArea(shape Shape) float64 {
	return shape.area()
}

func main(){
	r := Rectangle{20,10}
	c := Circle{4}
	fmt.Println("Rectangle Area =",getArea(r))
	fmt.Println("Circle Area =",getArea(c))

}
//執行結果:
Rectangle Area = 200
Circle Area = 50.26548245743669

2、接口嵌入

package main

import "fmt"
import "math"


type Shape interface {
	area() float64

}

type MultiShape interface {
	Shape            //嵌入式
}

type Rectangle struct {
	width float64
	height float64
}

type Circle struct {
	radius float64
}

func (r Rectangle) area() float64 {
	return r.height * r.width
}

func (c Circle) area() float64 {
	return math.Pi * math.Pow(c.radius,2)
}

func getArea(shape MultiShape) float64 {        //改為MultiShape
	return shape.area()
}

func main(){
	r := Rectangle{20,10}
	c := Circle{4}
	fmt.Println("Rectangle Area =",getArea(r))
	fmt.Println("Circle Area =",getArea(c))

}
//執行結果:
Rectangle Area = 200
Circle Area = 50.26548245743669        //執行結果一致



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湘潭市| 孝义市| 珲春市| 丽水市| 冕宁县| 宁海县| 和林格尔县| 青阳县| 和龙市| 赤壁市| 辽源市| 马鞍山市| 三台县| 濮阳县| 深水埗区| 青铜峡市| 桂阳县| 北碚区| 兴国县| 遵义市| 偏关县| 吉林省| 武强县| 奇台县| 宕昌县| 县级市| 碌曲县| 惠州市| 高淳县| 赤峰市| 融水| 娄底市| 丰镇市| 恩平市| 梅河口市| 巴楚县| 孙吴县| 耒阳市| 永昌县| 平泉县| 江山市|