天天看點

Go基礎 - 5 函數,結構,方法,接口

函數 function
package main

import "fmt"

func main() {
    fmt.Println(Add,))
    fmt.Println(Subtraction,))
    fmt.Println(Multiplication,,,))
}

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 :=

    for _, v := range number {
        total *= v
    }
    return total
}
           
結構 struct
  • Go提供的結構體就是把使用各種資料類型定義的不同變量組合起來的進階資料類型
package main

import "fmt"

type Person struct {
    Name string
    Age  int
}

func main() {

    fmt.Println(Person{"A",})
    fmt.Println(Person{Name: "B", Age:})
    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,}
    fmt.Println(c.Add())

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

import "fmt"

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

type square struct {
    longside int64
}

type rectangle struct {
    width, height int64
}

//正方形實作幾何體接口
//隻要某個類型擁有該接口的所有方法簽名,即算實作該接口
//任何其他類型都實作了空接口
func (s square) area() int64 {
    return s.longside * s.longside
}

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

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

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

//如果一個變量是接口類型, 可以通過這個變量調用接口裡的方法
//一個函數把interface{}作為參數,那麼他可以接受任意類型的值作為參數,如果一個函數傳回interface{},那麼也就可以傳回任意類型的值
func test(g geometry) {
    fmt.Println(g)
    fmt.Printf("面積是%d,周長是%d\n", g.area(), g.perimeter())
}

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

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

    test(s)
    test(r)
}
           
正方形的面積是25,周長是20
長方形的面積是56,周長是30
{5}
面積是25,周長是20
{7 8}
面積是56,周長是30
           
相關閱讀
  • 學習筆記