r1笔记第7天 Golang(06)

 

example01:闭包:一个函数和语气相关的引用环境及组合而成的实体。看一下函数和哪个变量进行绑定。比如下面的和 x进行了绑定,也就是说,运行过程中,会保留值。这样子好处是,只要写一次函数,就可以实现多个功能。

package main

import (
	"fmt"
	"strings"
)


func Adder() func(int) int  {
	var x int
	return func(data int) int {
		x += data
		return  x
	}
}

func makeSuffix(suffix string) func (string) string  {
	return func(name string) string {
		if strings.HasSuffix(name,suffix) == false {
			return name + suffix
		}
		return name
	}
}

func main()  {
	
	f := Adder()
	fmt.Println(f(1))
	fmt.Println(f(20))
	fmt.Println(f(100))
	
	f1 := makeSuffix(".bmp")
	fmt.Println(f1("test"))
	fmt.Println(f1("pic"))

	f2 := makeSuffix(".jpg")
	fmt.Println(f2("test"))
	fmt.Println(f2("pic"))
}

运行结果:

PS F:\go\src\go_dev> go build .\day4\work\example09\main\main.go
PS F:\go\src\go_dev> .\main.exe
1
21
121
test.bmp
pic.bmp
test.jpg
pic.jpg
PS F:\go\src\go_dev>

example02:切片,用来切割数组的,非常方便。

package main

import (
	"fmt"
)

func testSlice()  {
	var slice []int
	var arr [5]int=[...]int{1,2,3,4,5}

	slice = arr[2:5]
	fmt.Println(slice)
	fmt.Println(len(slice))
	fmt.Println(cap(slice))

	slice = slice[0:1]
	fmt.Println(len(slice))
	fmt.Println(cap(slice))
}

func main()  {
	testSlice()
}

切片的内存布局:(要试着去理解底层是怎么实现的)


2019年12月6日 

今天把openstack 上发布kubernetes的流程梳理了下,找到etcd-member.service启动失败的原因了,也找到了etcdctl的key-value手动写入方法,发现了oem-cloudinit.service 控制kubelet 去启动本地pod,利用kubehyper镜像起kube master组件。

切记戒骄戒躁,还有很多事情要做的,踏踏实实地学习,深入学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值