douyo770657 2016-06-17 14:39
浏览 1582
已采纳

在golang中连接多个切片

I'm trying to merge multiple slices as follows,

package routes

import (
    "net/http"
)

type Route struct {
    Name        string
    Method      string
    Pattern     string
    Secured     bool
    HandlerFunc http.HandlerFunc
}

type Routes []Route

var ApplicationRoutes Routes

func init() {
    ApplicationRoutes = append(
        WifiUserRoutes,
        WifiUsageRoutes,
        WifiLocationRoutes,
        DashboardUserRoutes,
        DashoardAppRoutes,
        RadiusRoutes,
        AuthenticationRoutes...
    )
}

However the builtin append() is capable of appending two slices, hence it throws too many arguments to append at compile time. Is there an alternative function to achieve the task? or is there a better way to merge the slices?

  • 写回答

2条回答 默认 最新

  • dongyuan9292 2016-06-17 14:46
    关注

    append operates on individual elements, not on entire slices. Append each slice in a loop

    routes := []Routes{
        WifiUserRoutes,
        WifiUsageRoutes,
        WifiLocationRoutes,
        DashboardUserRoutes,
        DashoardAppRoutes,
        RadiusRoutes,
        AuthenticationRoutes,
    }
    
    var ApplicationRoutes []Route
    for _, r := range routes {
        ApplicationRoutes = append(ApplicationRoutes, r...)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?