您现在的位置是:主页 > news > 最好的网站建设公司有哪些/网络营销的特征和功能
最好的网站建设公司有哪些/网络营销的特征和功能
admin2025/5/1 1:05:36【news】
简介最好的网站建设公司有哪些,网络营销的特征和功能,政府门户网站建设经验汇报材料,内网穿透软件哪个好go语言的包、封装、组合包封装如何扩充系统类型或者别人的类型组合包 1、go语言中,每个目录为一个包 2、main包包含可执行入口 3、为结构定义的方法必须放在同一个包内,可以在不同的文件中 封装 go语言中结构、常量、方法首字母大写,代表p…
最好的网站建设公司有哪些,网络营销的特征和功能,政府门户网站建设经验汇报材料,内网穿透软件哪个好go语言的包、封装、组合包封装如何扩充系统类型或者别人的类型组合包
1、go语言中,每个目录为一个包 2、main包包含可执行入口 3、为结构定义的方法必须放在同一个包内,可以在不同的文件中
封装
go语言中结构、常量、方法首字母大写,代表p…
go语言的包、封装、组合
- 包
- 封装
- 如何扩充系统类型或者别人的类型
- 组合
包
1、go语言中,每个目录为一个包
2、main包包含可执行入口
3、为结构定义的方法必须放在同一个包内,可以在不同的文件中
封装
go语言中结构、常量、方法首字母大写,代表public,首字母小写代表private
public的可以支持其他包的调用
如何扩充系统类型或者别人的类型
1、定义别名
2、使用组合
组合例子:
http://c.biancheng.net/view/5128.html
tree包
package tree
import "fmt"
type Node struct {Value intLeft, Right *Node
}
func (no *Node) SetValue(value int){no.Value = value
}
func (no *Node) Traverse(){if no == nil {return}no.Left.Traverse()no.Print()no.Right.Traverse()
}
func CreateNode(value int) *Node {return &Node{ value, nil, nil}
}
func (no Node)Print(){fmt.Printf("%d ",no.Value)
}
main包中使用组合扩展
package mainimport ("fmt"tree "tree"
)
type MyTreeNode struct {node *tree.Node
}
func (myNode *MyTreeNode) postOrder() {if myNode == nil || myNode.node == nil{return}left := MyTreeNode{myNode.node.Left}right := MyTreeNode{myNode.node.Right}left.postOrder()right.postOrder()myNode.node.Print()
}
func main() {var root tree.Noderoot = tree.Node{3,nil,nil}root.Left = &tree.Node{999,nil,nil}root.Right = &tree.Node{5, nil, nil}root.Right.Left = new(tree.Node)root.Left.Right = tree.CreateNode(2)root.Right.Left.SetValue(4)root.Traverse()fmt.Println()myRoot := MyTreeNode{&root}myRoot.postOrder()fmt.Print()
}
组合
Go可以通过组合另一个类型来“继承”它的所有行为,十分直观。
go的组合表达了一种Student是个人,所以Student包含了Person的所有行为,即人能做的事情Student就能做,Student骨子里也是个人
package main
type Person struct {
}
func (p *Person) Say(){println("I am a person")
}
type Student struct {Person
}