本人是前端,最近在学习go,总结一些学习的小点。
前端都是通过export default 和import来完成模块的拆分。go有些不同。n个功能可以放在n个.go的文件中,只要这n个.go的文件都有相同的package名,那文件中所有地方都可以直接用别的文件中定义的函数和结构体。
比如这里有个entity.go
package main
type Person struct {
name string
age int
}
func (p *Person)SetName(name string) {
p.name = name
}
func (p *Person)SetAge(age int) {
p.age = age
}
func NewPerson(name string, age int) *Person{
return &Person{
name: name,
age: age,
}
}
在main.go里面可以直接用entity.go里面的Person结构体
package main
import (
"fmt"
)
func main() {
// 创建对象方法一
p1 := Person{}
p1.age = 18
p1.SetName("张三")
//创建对象方法二
p2 := NewPerson("andy", 30)
//创建对象方法三
p3 := Person{"zhangsan1", 21}
fmt.Println(p)
}
go的数组是定长的,一般都会用切片来替代,但切片也只有append,没有像unShift一样往数组前面插入的api。所以只能自己封装了。
比如现在有个数组[]int{1,2,3,4,5,6,7,8,9,10} 还有个数组[]int{33, 44},想得到[]int{33, 44,1,2,3,4,5,6,7,8,9,10},方法如下
package main
func main() {
slice_0 := []int{1,2,3,4,5,6,7,8,9,10}
slice_1 := []int{33, 44}
slice_0 = append(slice_1, slice_0...)
fmt.Println(slice_1)
for _, value := range slice_0{
fmt.Println(value)
}
}