package main
import "fmt"
//数组
func demo1() {
var arr []int
arr = []int{1, 2, 3}
fmt.Println(arr)
var aa = new([]int)
fmt.Println(*aa)
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
fmt.Println(balance)
}
//多维数组
func demo2() {
var aa [][][]int
aa = [][][]int{
{
{1, 2, 3},
{1, 2, 3},
{1, 2, 3},
{1, 2, 3},
{1, 2, 3},
},
{
{},
},
{
{1, 2, 3},
},
}
fmt.Println(aa)
}
//切片
func demo3() {
var aa []int
fmt.Println(aa)
var bb = make([]int, 10, 20)
fmt.Println(bb)
var cc []int = make([]int, 10)
fmt.Println(cc)
//数组切片
var dd = []int{1, 2, 3, 4, 5}
var ee = dd[0:4:5] //第几个开始到第几个结束,容量有大多
fmt.Println(ee)
fmt.Println(len(ee)) //长度
fmt.Println(cap(ee)) //容量
fmt.Println("切片操作")
var gg = []int{1,2,3,4}
fmt.Println(gg)
gg = append(gg,0,0,0,0) //追加
fmt.Println(gg)
hh:=make([]int,len(gg),cap(gg)*2)
copy(hh,gg)
fmt.Println(hh)
fmt.Println(cap(hh))
}
//map 无序的键值对
func demo4() {
var aa map[string]string
aa = map[string]string{"b":"1","a":"2"}
aa["x"]="3"
fmt.Println(aa)
//for k,v :=range aa{
// fmt.Println(k,v)
//}
//delete
delete(aa,"a")
fmt.Println(aa)
}
//结构体
func demo5() {
type aa struct {
a int
b string
c *float64
}
var bb = 3.0
var name = aa{1,"2",&bb}
fmt.Println(name)
}
//接口
type Iphone interface {
call()
}
type ipad struct {
size int
clolr string
}
func(tmp ipad) call() {
fmt.Println("call+",tmp.size)
}
func demo6() {
var home Iphone
home = Iphone(ipad{10,"red"})
//home = ipad{10,"red"}
home.call()
}
func main() {
demo6()
}