Go 简明笔记 高级篇

栏目: Go · 发布时间: 5年前

内容简介:1、初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变数组: a := [...]int{1,2,3} a := [3]int{1,2,3}2、切片不需要指定大小

切片

1、初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变

数组: a := [...]int{1,2,3} a := [3]int{1,2,3}

2、切片不需要指定大小

切片: a:= []int{1,2,3} a := make([]int, 5) a := make([]int, 5, 10)

Food :=[]string{"bread","Salad","egg"}
fmt.Printf("切片操作:%q\n长度:%v\n容量:%v",Food[:2],len(Food),cap(Food))
Food = append(Food,"Super Banana")

输出结果:
切片操作:["bread" "Salad"]
长度:3
容量:3

Map集合

var ccm map[string]string
ccm = make(map[string]string)
ccm["France"] = "Paris"
ccm["Italy"] = "罗马"
ccm["Japan"] = "东京"
ccm["India"] = "新德里"
for k,v := range ccm{
  fmt.Println(k,v)
}
delete(ccm,"India")
fmt.Println("\n删除Indea之后的map",ccm)

输出结果:
France Paris
Italy 罗马
Japan 东京
India 新德里


输出结果:
删除Indea之后的map map[France:Paris Italy:罗马 Japan:东京]

接口

接⼝是一个或多个方法签名的集合,任何非接口类型只要拥有与之对应的全部方法实现 (包括相同的名称、参数列表以及返回值。),就表示它"实现" 了该接口,无需显式在该类型上添加接口声明。此种方式又被称作Duck Type。

package main

import "fmt"

func main() {
  People := Student{"Mr.Potato"}
  fmt.Println(People.ReturnName())
  checkInterface(People)
  }
type People interface {
  ReturnName() string
}

// 定义一个结构体
type Student struct {
  Name string
}
// 定义结构体的一个方法。
// 突然发现这个方法同接口People的所有方法(就一个)//此时可直接认为结构体Student实现了接口Peoplefunc (s Student) ReturnName() string {
  return s.Name
}

func checkInterface(test interface{}){
  if _,ok := test.(People); ok{
     fmt.Println("No problem!!!")
  }
}

以上所述就是小编给大家介绍的《Go 简明笔记 高级篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

水平营销

水平营销

[美] 菲利普·科特勒、费尔南多・德・巴斯 / 陈燕茹 / 中信出版社 / 2005-1 / 25.00元

《水平营销》阐明了相对纵向营销而言的的水平营销的框架和理论。引入横向思维来作为发现新的营销创意的又一平台,旨在获得消费者不可能向营销研究人员要求或建议的点子。而这些点子将帮助企业在产品愈加同质和超竞争的市场中立于不败之地。 《水平营销》提到: 是什么创新过程导致加油站里开起了超市? 是什么创新过程导致取代外卖比萨服务的冷冻比萨的亮相? 是什么创新过程导致巧克力糖里冒出了玩具......一起来看看 《水平营销》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具