亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

golang中struct和interface的基礎使用教程

2020-04-01 18:58:03
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹了關于golang中structgolang/279488.html">interface的相關內容,是屬于golang的基本知識,下面話不多說了,來一起看看詳細的介紹吧。

struct

struct 用來自定義復雜數據結構,可以包含多個字段(屬性),可以嵌套;go中的struct類型理解為類,可以定義方法,和函數定義有些許區別;struct類型是值類型。

struct定義

type User struct { Name string Age int32 mess string}var user Uservar user1 *User = &User{}var user2 *User = new(User)

struct的方法

在go語言中,我們可以為自定義類型定義類型相關的方法,比如:

func (p *player) Name() string{ return p.name}

上面的代碼為player這個自定義類型聲明了一個名為Name的方法,該方法返回一個string。值得注意的是(p *player)這段代碼指定了我們是為player創建方法,并將調用該方法的實例指針當作變量p傳入該函數,如果沒有(p *player)這段代碼,這個方法就變成了一個普通的全局函數。

struct的嵌入(Embedding)

go語言中的“繼承”和其他語言中的繼承有很大區別,比如:

type player struct{ User}

這是一種“繼承”的寫法,在go語言中這種方式叫做“嵌入”(embed),此時player類型就擁有了User類型的Name等變量

struct的tag

這種方式主要是用在xml,json和struct間相互轉換,非常方便直觀,比如接口給的參數一般是json傳過來,但是內部我們要轉為struct再進行處理。

例子:

import "encoding/json"type User struct { Name string `json:"userName"` Age int `json:"userAge"`}func main() { var user User user.Name = "nick" user.Age = 18  conJson, _ := json.Marshal(user) fmt.Println(string(conJson)) //{"userName":"nick","userAge":0}}

interface

golang不支持完整的面向對象思想,它沒有繼承,多態則完全依賴接口實現。golang只能模擬繼承,其本質是組合,只不過golang語言為我們提供了一些語法糖使其看起來達到了繼承的效果。Golang中的接口,不需要顯示的實現。Interface類型可以定義一組方法,但是這些不需要實現。并且interface不能包含任何變量。只要一個變量,含有接口類型中的所有方法,那么這個變量就實現這個接口。因此,golang中沒有implement類似的關鍵字;如果一個變量含有了一個interface類型的多個方法,那么這個變量就實現了多個接口;如果一個變量只含有了一個interface的方部分方法,那么這個變量沒有實現這個接口。

interface的定義

interface類型默認是一個指針。

例子:

Interface定義

type Car interface { NameGet() string Run(n int) Stop()}

空接口 Interface{}:空接口沒有任何方法,所以所有類型都實現了空接口。

var a intvar b interface{} //空接口b = a

interface的多態

一種事物的多種形態,都可以按照統一的接口進行操作。這種方式是用的最多的,有點像c++中的類繼承。

例子:

type Item interface { Name() string Price() float64} type VegBurger struct {} func (r *VegBurger) Name() string{ return "vegburger"} func (r *VegBurger) Price() float64{ return 1.5} type ChickenBurger struct {} func (r *ChickenBurger) Name() string{ return "chickenburger"} func (r *ChickenBurger) Price() float64{ return 5.5}

Interface嵌套

一個接口可以嵌套在另外的接口。即需要實現2個接口的方法。在下面的例子中Used就包含了Car這個接口的所有方法。
例子:

type Car interface { NameGet() string Run(n int) Stop()}type Used interface { Car Cheap()}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费成人高清视频| 久久视频免费观看| 最近2019年中文视频免费在线观看| 国产精品视频在线播放| 亚洲高清久久久久久| 欧美精品久久久久久久久久| 4444欧美成人kkkk| 日韩精品免费一线在线观看| 日韩美女福利视频| 欧美激情在线观看视频| 亚洲自拍小视频免费观看| 亚洲第一av在线| 欧美裸体xxxxx| 国产精品99久久久久久久久久久久| 午夜精品久久久久久久久久久久| xxav国产精品美女主播| 国产精品日韩久久久久| 成人a在线视频| 久久久久国产一区二区三区| 91热精品视频| 国产成人精品久久二区二区| 国语自产精品视频在线看一大j8| 欧美在线观看视频| 久久久国产一区二区三区| 国产日韩欧美成人| 久久人人爽人人爽爽久久| 欧美午夜精品久久久久久久| 久久精品亚洲94久久精品| 2019av中文字幕| 在线成人激情黄色| 91国产在线精品| 久久久久五月天| 91亚洲精品视频| 中文字幕免费国产精品| 久久久久久91香蕉国产| 亚洲欧洲日本专区| 伊人久久久久久久久久久| 97视频网站入口| 亚洲第一免费网站| 日韩在线欧美在线| 欧美一级视频在线观看| 中文字幕国产亚洲2019| 中文字幕亚洲一区二区三区五十路| 欧美www视频在线观看| 日韩av在线播放资源| 国产欧美精品在线播放| 久久精品99久久久久久久久| 亚洲一区美女视频在线观看免费| 欧美成人在线影院| 人人澡人人澡人人看欧美| 国外成人性视频| 日韩视频在线免费| 日韩最新av在线| 国产欧美一区二区三区久久人妖| 欧美性69xxxx肥| 亚洲激情视频在线| 91精品在线看| 国产91色在线播放| 亚洲成人在线视频播放| 日韩精品www| 狠狠操狠狠色综合网| 91豆花精品一区| 97精品国产97久久久久久免费| 日本久久久久久久| 国产一区二区三区在线| 国产精品久久久久久久电影| 亚洲欧美精品伊人久久| 91亚洲国产精品| 国产丝袜视频一区| 国产精品老牛影院在线观看| 九九久久国产精品| 欧美体内谢she精2性欧美| 国产一区二区精品丝袜| 日韩av资源在线播放| 午夜精品一区二区三区av| 久久精品色欧美aⅴ一区二区| 成人免费观看a| 成人免费淫片视频软件| 亚洲精品二三区| 最近2019免费中文字幕视频三| 日韩精品免费综合视频在线播放| 久久露脸国产精品| 欧美激情一二三| 国产精品成人国产乱一区| 亚洲人成在线免费观看| 97免费中文视频在线观看| 国产精品扒开腿做爽爽爽男男| 精品久久久久久国产| 国产精品久久久久久亚洲调教| 成人欧美一区二区三区黑人| 日韩中文字幕精品| 亚洲图中文字幕| 欧美性极品xxxx娇小| 亚洲精品自拍视频| 日韩美女免费线视频| 精品女同一区二区三区在线播放| 国产精品91一区| 欧美日韩免费网站| 91人人爽人人爽人人精88v| 亚洲成年人在线播放| 欧美成人性色生活仑片| 欧美极品美女视频网站在线观看免费| 国产午夜精品麻豆| 欧美性极品xxxx娇小| 欧美成人激情视频| 最近更新的2019中文字幕| 91在线精品视频| 在线播放精品一区二区三区| 中文字幕一区二区精品| 亚洲午夜未删减在线观看| 久久久爽爽爽美女图片| www.99久久热国产日韩欧美.com| 一区二区中文字幕| 久久精品国产v日韩v亚洲| 日韩精品中文字幕在线| 国产免费亚洲高清| 国产免费一区二区三区在线能观看| 97久久超碰福利国产精品…| 亚洲精品视频在线观看视频| 国产人妖伪娘一区91| 欧美另类在线播放| 日韩av在线免播放器| 自拍偷拍亚洲在线| 欧美一级高清免费| 欧美裸体男粗大视频在线观看| 亚洲成年人在线| 亚洲欧洲日产国码av系列天堂| 亚洲社区在线观看| 欧美日韩第一视频| 国产午夜精品一区理论片飘花| 亚洲va欧美va国产综合久久| 欧美大尺度激情区在线播放| 国产小视频国产精品| 一区二区三区回区在观看免费视频| 欧美激情一区二区三区在线视频观看| 国产成人av网址| 日韩欧美在线观看视频| 2020欧美日韩在线视频| 色狠狠久久aa北条麻妃| 中文字幕9999| 亚洲国产成人av在线| 国产专区精品视频| 岛国视频午夜一区免费在线观看| 欧美一区在线直播| 欧美日韩爱爱视频| 人人澡人人澡人人看欧美| 久久久噜噜噜久噜久久| 亚洲一级黄色av| 国产精品欧美日韩久久| 久久久久久久电影一区| 日韩av电影手机在线| 国产精品视频中文字幕91| 亚洲欧洲国产一区| 在线播放国产一区二区三区| 国产精品国产三级国产专播精品人| 深夜福利日韩在线看| 亚洲欧洲在线免费| 中文字幕日韩在线观看| 国产v综合v亚洲欧美久久| 亚洲成人黄色网| 久久久精品视频成人| 青草青草久热精品视频在线观看| 亚洲精品福利在线| 久久精品亚洲国产|