37.go struct 结构

结构的创建:

//使用了工厂函数
func createNode(value int) *treeNode {
	//返回了局部地址,在go中是合法的
	return &treeNode{value : value}
}

var root treeNode
	root = treeNode{value:3}
	root.left = &treeNode{}
	root.right = &treeNode{5, nil, nil}
	root.right.left = new(treeNode)
	root.left.right = createNode(2)
	nodes := []treeNode{
		{value:3},
		{},
		{6,nil,nil},
	}
fmt.Println(nodes)

//值接收者,拷贝一份node
func (node treeNode) setValue(value int) {
	node.value = value
}

//指针接收者,直接用node原先的地址
func (node *treeNode) setValue(value int) {
	node.value = value
}

nil 指针也可以调用方法。
//1.别名
package queue

type Queue []int

func (q *Queue) Push(v int) {
	*q = append(*q,v)
}

func (q *Queue) Pop() int {
	head := (*q)[0]
	*q = (*q)[1:]
	return head
}

func (q *Queue) IsEmpty() bool {
	return len(*q) == 0
}

//2.组合
type myTreeNode struct {
	node *tree.Node
}

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值