前端学习go语言避坑指南

本人是前端,最近在学习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)
    }
}

你可能感兴趣的:(前端学习go语言避坑指南)