go语言快速入门(二)

go接口

go语言中使用interface关键字定义接口,这里我们定义了一个Person接口并在其中定义了一个有参数的eat方法和一个有返回值的isAdult方法,我们定义了一个结构体Student实现这两个方法。在oop的思想中,接口实际上就是一种类的抽象

package main

import "fmt"

func main() {
	var p Person = Student{"Lily",14}
	p.eat("apple")
	fmt.Println(p.isAdult())
}

type Food string

//Person接口
type Person interface {
	eat(food Food)()
	isAdult() bool
}

type Student struct {
	name string
	age int
}

func (s Student)eat(food Food)  {
	fmt.Println(s.name + " eat " + string(food))
}
func (s Student)isAdult() bool {
	return s.age>18
}

返回值

Lily eat apple
false

go中的容器

数组

数组是go中最基本的容器

//数组声明
var balance1 = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
//如果忽略[]中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小
var balance2 = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
//数组赋值
balance1[4] = 50.0
/* 输出每个数组元素的值 */
for j := 0; j < len(balance2); j++ {
	fmt.Printf("Element[%d] = %d\n", j, balance2[j] )
}
切片(Slice)

切片是go语言中对数组的抽象,与数组相比它没有固定长度,可以随时增加元素并自动扩容

//切片
var balance3 = []float32{1000.0, 2.0, 3.4, 7.0, 50.0}
//追加元素
balance3 = append(balance3,19)
Map(集合)

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

//声明Map
var student map[int]string
//初始化Map
student = make(map[int]string)
student[1] = "Lily"
student[2] = "Jsica"

fmt.Println(student[1])

val,_ok := student[3]
//是否存在此元素
fmt.Println(_ok)
//元素的值
fmt.Println(val)
//使用range遍历map 
for _,v := range student{
	fmt.Println(v)
}

注意:如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值