Go基礎(chǔ) - 5 函數(shù),結(jié)構(gòu),方法,接口

函數(shù) function
package main

import "fmt"

func main() {
    fmt.Println(Add(8, 7))
    fmt.Println(Subtraction(8, 7))
    fmt.Println(Multiplication(2, 3, 5, 10))
}

func Add(number1 int, number2 int) (number3 int) {
    number3 = number1 + number2
    return
}

func Subtraction(number1, number2 int) int {
    number3 := number1 - number2
    return number3
}

func Multiplication(number ...int) int {
    total := 1

    for _, v := range number {
        total *= v
    }
    return total
}
15
1
300
結(jié)構(gòu) struct
  • Go提供的結(jié)構(gòu)體就是把使用各種數(shù)據(jù)類型定義的不同變量組合起來(lái)的高級(jí)數(shù)據(jù)類型
package main

import "fmt"

type Person struct {
    Name string
    Age  int
}

func main() {

    fmt.Println(Person{"A", 18})
    fmt.Println(Person{Name: "B", Age: 19})
    fmt.Println(Person{Name: "C"})

}
{A 18}
{B 19}
{C 0}
方法method
package main

import "fmt"

type Calculation struct {
    number1 int
    number2 int
}

func (c Calculation) Add() int {

    number3 := c.number1 + c.number2
    return number3

}

func main() {

    c := Calculation{7, 8}
    fmt.Println(c.Add())

}
15
接口 interface
//接口是方法簽名的集合(方法簽名就是定義為:方法名+參數(shù)列表)
package main

import "fmt"

//幾何體的接口锹安。
type geometry interface {
    area() int64
    perimeter() int64
}

type square struct {
    longside int64
}

type rectangle struct {
    width, height int64
}

//正方形實(shí)現(xiàn)幾何體接口
//只要某個(gè)類型擁有該接口的所有方法簽名烙丛,即算實(shí)現(xiàn)該接口
//任何其他類型都實(shí)現(xiàn)了空接口
func (s square) area() int64 {
    return s.longside * s.longside
}

func (s square) perimeter() int64 {
    return s.longside * 4
}

func (r rectangle) area() int64 {
    return r.width * r.height
}

func (r rectangle) perimeter() int64 {
    return (r.width + r.height) * 2
}

//如果一個(gè)變量是接口類型, 可以通過(guò)這個(gè)變量調(diào)用接口里的方法
//一個(gè)函數(shù)把interface{}作為參數(shù),那么他可以接受任意類型的值作為參數(shù)炫欺,如果一個(gè)函數(shù)返回interface{},那么也就可以返回任意類型的值
func test(g geometry) {
    fmt.Println(g)
    fmt.Printf("面積是%d,周長(zhǎng)是%d\n", g.area(), g.perimeter())
}

func main() {
    s := square{longside: 5}
    r := rectangle{width: 7, height: 8}

    fmt.Printf("正方形的面積是%d,周長(zhǎng)是%d\n", s.area(), s.perimeter())
    fmt.Printf("長(zhǎng)方形的面積是%d,周長(zhǎng)是%d\n", r.area(), r.perimeter())

    test(s)
    test(r)
}
正方形的面積是25,周長(zhǎng)是20
長(zhǎng)方形的面積是56,周長(zhǎng)是30
{5}
面積是25,周長(zhǎng)是20
{7 8}
面積是56,周長(zhǎng)是30
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌白胀,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抚岗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡哪怔,警方通過(guò)查閱死者的電腦和手機(jī)宣蔚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)认境,“玉大人胚委,你說(shuō)我怎么就攤上這事〔嫘牛” “怎么了亩冬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)硼身。 經(jīng)常有香客問(wèn)我硅急,道長(zhǎng),這世上最難降的妖魔是什么佳遂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任营袜,我火速辦了婚禮,結(jié)果婚禮上丑罪,老公的妹妹穿的比我還像新娘荚板。我一直安慰自己,他們只是感情好吩屹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布跪另。 她就那樣靜靜地躺著,像睡著了一般煤搜。 火紅的嫁衣襯著肌膚如雪免绿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天宅楞,我揣著相機(jī)與錄音针姿,去河邊找鬼袱吆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛距淫,可吹牛的內(nèi)容都是我干的绞绒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼榕暇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蓬衡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起彤枢,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤狰晚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后缴啡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體壁晒,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年业栅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秒咐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碘裕,死狀恐怖携取,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帮孔,我是刑警寧澤雷滋,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站文兢,受9級(jí)特大地震影響晤斩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜禽作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一尸昧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旷偿,春花似錦烹俗、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至茫负,卻和暖如春蕉鸳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工潮尝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留榕吼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓勉失,卻偏偏與公主長(zhǎng)得像羹蚣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乱凿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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