函數(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