内部循环定义父链接

我想循环我的表的名称以添加由符号“ _”定义的关联。


如果表a_b然后存在a则, 。最后,我不必打印名称中包含“”的表ba = [b]b = [a]_


结构体


// Table with Fields and Assoc

type Table struct {

    Name       string

    Assoc      []Assoc

}


// Assoc is a name of associated Table

type Assoc struct {

  Name string

}

tables := []string{

    "a",

    "b",

    "c",

    "d",

    "f",

    "a_b",

    "a_c",

    "a_d_f",

    "c_d",      

}


var tbls []Table


for _, t := range tables {

    if strings.Contains(t, "_") {

        // Split to find "_" like assoc := strings.Split(t, "_") ?

        // append in struct "Table{Name:a, Assoc:  [b,c,d,f]}"

        // append in struct "Table{Name:b, Assoc:  [a]}"

        // append in struct "Table{Name:c, Assoc:  [a,d]}"

        // append in struct "Table{Name:d, Assoc:  [a,c,f]}"

        // append in struct "Table{Name:f, Assoc:  [a,d]}"      

    } else {

        n := Table{

            Name: t,

        }

        tbls = append(tbls, n)

    }


}

像这样返回fmt.Println(tbls):


[{a [b,c,d,f]} {b [a]} {c [a,d]} {d [a,c,f]} {f [a,d]}]

去游乐场


蝴蝶刀刀
浏览 118回答 1
1回答

天涯尽头无女友

使用地图完成上述操作&nbsp;https://play.golang.org/p/8C5M0L-es6opackage mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "strings")// Table with Fields and Assoctype Table struct {&nbsp; &nbsp; Name&nbsp; string&nbsp; &nbsp; Assoc map[string]int}// Assoc is a name of associated Table// type Assoc struct {//&nbsp; Name string// }func main() {&nbsp; &nbsp; tables := []string{&nbsp; &nbsp; &nbsp; &nbsp; "a",&nbsp; &nbsp; &nbsp; &nbsp; "b",&nbsp; &nbsp; &nbsp; &nbsp; "c",&nbsp; &nbsp; &nbsp; &nbsp; "d",&nbsp; &nbsp; &nbsp; &nbsp; "f",&nbsp; &nbsp; &nbsp; &nbsp; "a_b",&nbsp; &nbsp; &nbsp; &nbsp; "a_c",&nbsp; &nbsp; &nbsp; &nbsp; "a_d_f",&nbsp; &nbsp; &nbsp; &nbsp; "c_d",&nbsp; &nbsp; }&nbsp; &nbsp; var tbls = make(map[string]map[string]int)&nbsp; &nbsp; for _, t := range tables {&nbsp; &nbsp; &nbsp; &nbsp; if strings.Contains(t, "_") {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; splitAssocs := strings.Split(t, "_")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for i:=0;i<=len(splitAssocs)-2;i++ {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for j:=(i+1);j<=len(splitAssocs)-1;j++{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _, ok := tbls[splitAssocs[i]]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if !ok{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tbls[splitAssocs[i]] = make(map[string]int)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_, ok = tbls[splitAssocs[j]]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if !ok{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tbls[splitAssocs[j]] = make(map[string]int)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tbls[splitAssocs[i]][splitAssocs[j]] = 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tbls[splitAssocs[j]][splitAssocs[i]] = 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _, ok := tbls[t]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if !ok{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tbls[t] = make(map[string]int)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; fmt.Println(tbls)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go