美文网首页
前端学习go语言避坑指南

前端学习go语言避坑指南

作者: b59a2ae26f20 | 来源:发表于2020-09-02 13:56 被阅读0次

    本人是前端,最近在学习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语言避坑指南

          本文链接:https://www.haomeiwen.com/subject/mrxwsktx.html