GO語言初級學(xué)習(xí)之代碼案例06 (面向?qū)ο螅?/h1>

@(go語言 黑馬)[GO語言]

實現(xiàn)計算器

  • 題目:面向?qū)ο笏枷雽崿F(xiàn)計算器

  • 邏輯:1晕粪、 定義好加減乘除的結(jié)構(gòu)體挤悉;
    2渐裸、綁定好各自的方法巫湘,方法名都和接口名相同;
    3昏鹃、定義接口尚氛,把結(jié)構(gòu)體們的方法融合在一起;
    4洞渤、定義工廠結(jié)構(gòu)體阅嘶;
    5、編寫工廠結(jié)構(gòu)體的方法载迄,這是整個代碼的核心讯柔;
    6、主函數(shù)通過工廠變量把所要的值返回出來护昧,賦給一個變量魂迄,再打印輸出;

  • 代碼如下

package main

import "fmt"

type Opt struct { //父類結(jié)構(gòu)體,為了方便接口的調(diào)用惋耙,把加法減法放在不同的子類中捣炬;
    num1 int
    num2 int
}
type Addopt struct { //加法結(jié)構(gòu)體
    Opt
}
type Subopt struct { //減法結(jié)構(gòu)體
    Opt
}

//定義接口
type Jiekou interface {
    Calculate() int
}

//給加減法結(jié)構(gòu)體綁定方法
func (a *Addopt) Calculate() int {
    return a.num1 + a.num2
}
func (b *Subopt) Calculate() int {
    return b.num1 - b.num2
}

//定義多態(tài)
func poly(jie Jiekou) (value int) {
    value = jie.Calculate()
    return
}

type factory struct { //工廠的作用就是整合所有的方法,判斷輸入的命令绽榛,并根據(jù)判斷結(jié)果分配不同的方法
}

func (fac *factory) Result(num1 int, num2 int, synbol string) (value int) {
    var jie Jiekou //最終還是要通過接口實現(xiàn)方法
    //通過接口實現(xiàn)湿酸,必須定義接口變量,不同的接口變量對應(yīng)不同的方法
    //接口變量被賦值為能夠?qū)崿F(xiàn)該接口的結(jié)構(gòu)體變量灭美,調(diào)用綁定該結(jié)構(gòu)體的方法
    switch synbol { //通過switch給接口變量賦不同的值
    case "+":
        jie = &Addopt{Opt{num1, num2}}
    case "-":
        jie = &Subopt{Opt{num1, num2}}
    }
    value = poly(jie) //利用多態(tài)調(diào)用接口推溃,并輸出返回值
    return
} //這是綁定在factory的方法

func main() {
    var fac factory
    value := fac.Result(12, 23, "+")
    fmt.Println(value)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個濱河市届腐,隨后出現(xiàn)的幾起案子美莫,更是在濱河造成了極大的恐慌页眯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢呵,死亡現(xiàn)場離奇詭異窝撵,居然都是意外死亡,警方通過查閱死者的電腦和手機襟铭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門碌奉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寒砖,你說我怎么就攤上這事赐劣。” “怎么了哩都?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵魁兼,是天一觀的道長。 經(jīng)常有香客問我漠嵌,道長咐汞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任儒鹿,我火速辦了婚禮化撕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘约炎。我一直安慰自己植阴,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布圾浅。 她就那樣靜靜地躺著掠手,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狸捕。 梳的紋絲不亂的頭發(fā)上喷鸽,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音府寒,去河邊找鬼魁衙。 笑死,一個胖子當著我的面吹牛株搔,可吹牛的內(nèi)容都是我干的剖淀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼纤房,長吁一口氣:“原來是場噩夢啊……” “哼纵隔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤捌刮,失蹤者是張志新(化名)和其女友劉穎碰煌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绅作,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡芦圾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俄认。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片个少。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖眯杏,靈堂內(nèi)的尸體忽然破棺而出夜焦,到底是詐尸還是另有隱情,我是刑警寧澤岂贩,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布茫经,位于F島的核電站,受9級特大地震影響萎津,放射性物質(zhì)發(fā)生泄漏卸伞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一姜性、第九天 我趴在偏房一處隱蔽的房頂上張望瞪慧。 院中可真熱鬧髓考,春花似錦部念、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至查蓉,卻和暖如春乌询,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豌研。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工妹田, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鹃共。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓鬼佣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霜浴。 傳聞我的和親對象是個殘疾皇子晶衷,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法晌纫,繼承相關(guān)的語法税迷,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,339評論 8 265
  • 單例設(shè)計模式是指:保證整個程序中只有一個實例锹漱。 確保某個類有且只要一個對象的場景箭养,避免產(chǎn)生過多對象消耗過多資源,或...
    Ayres閱讀 166評論 0 1
  • 2017.4.1 今天是愚人節(jié)哥牍,我回家了露懒,家里又多了一位,小狗子砂心。之前讓媽媽去買一條小狗養(yǎng)著懈词,媽媽就是不愿意,現(xiàn)在...
    超潮先生閱讀 217評論 0 0
  • 他們的愛與風(fēng)華,只問自由译暂,只問盛放抠忘,只問深情,只問初心外永,只問勇敢崎脉,無問西東〔ィ————《無問西東》 1 1962年囚灼,...
    等一個盛夏閱讀 766評論 0 1