21
demo/golang/.vscode/launch.json
vendored
Normal file
21
demo/golang/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Launch",
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "auto",
|
||||
"program": "${fileDirname}",
|
||||
"env": {},
|
||||
"args": [],
|
||||
"dlvLoadConfig": {
|
||||
"followPointers": true,
|
||||
"maxVariableRecurse": 1,
|
||||
"maxStringLen": 5000,
|
||||
"maxArrayValues": 64,
|
||||
"maxStructFields": -1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
91
demo/golang/demo.go
Normal file
91
demo/golang/demo.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"math/rand"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Debug using Delve needs to adjust the configuration
|
||||
// Delve's maxStringLen default is small and needs to be adjusted for the maxStringLen default of the delve. See in detail (microsoft/vscode-go#868).
|
||||
// Add the following configuration to
|
||||
//launch.json
|
||||
// "dlvLoadConfig": {
|
||||
// "followPointers": true,
|
||||
// "maxVariableRecurse": 1,
|
||||
// "maxStringLen": 5000,
|
||||
// "maxArrayValues": 64,
|
||||
// "maxStructFields": -1
|
||||
// }
|
||||
|
||||
// debuging test Must be set settings.json
|
||||
//settings.json
|
||||
// "go.delveConfig": {
|
||||
// "dlvLoadConfig": {
|
||||
// "followPointers": true,
|
||||
// "maxVariableRecurse": 1,
|
||||
// "maxStringLen": 5000,
|
||||
// "maxArrayValues": 64,
|
||||
// "maxStructFields": -1
|
||||
// },
|
||||
// "apiVersion": 2,
|
||||
// "showGlobalVariables": true
|
||||
// }
|
||||
|
||||
type Graph struct {
|
||||
Kind map[string]bool `json:"kind"`
|
||||
Nodes []NodeGraphData `json:"nodes"`
|
||||
Edges []EdgeGraphData `json:"edges"`
|
||||
}
|
||||
|
||||
type NodeGraphData struct {
|
||||
ID string `json:"id"`
|
||||
Label string `json:"label,omitempty"`
|
||||
Color string `json:"color,omitempty"`
|
||||
Shape string `json:"shape,omitempty"`
|
||||
}
|
||||
|
||||
type EdgeGraphData struct {
|
||||
From string `json:"from"`
|
||||
To string `json:"to"`
|
||||
Label string `json:"label,omitempty"`
|
||||
ID string `json:"id"`
|
||||
Color string `json:"color,omitempty"`
|
||||
Dashes bool `json:"dashes,omitempty"`
|
||||
}
|
||||
|
||||
func NewGraph() *Graph {
|
||||
return &Graph{
|
||||
Kind: map[string]bool{"graph": true},
|
||||
Nodes: []NodeGraphData{},
|
||||
Edges: []EdgeGraphData{},
|
||||
}
|
||||
}
|
||||
|
||||
func (this *Graph) toString() string {
|
||||
rs, _ := json.Marshal(this)
|
||||
return string(rs)
|
||||
}
|
||||
|
||||
// Visualize "s"
|
||||
func main() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
graph := NewGraph()
|
||||
var s string
|
||||
for i := 2; i < 100; i++ {
|
||||
id := strconv.Itoa(i)
|
||||
graph.Nodes = append(graph.Nodes, NodeGraphData{
|
||||
ID: id,
|
||||
Label: id,
|
||||
})
|
||||
targetId := rand.Intn(i) + 1
|
||||
graph.Edges = append(graph.Edges, EdgeGraphData{
|
||||
From: id,
|
||||
To: strconv.Itoa(targetId),
|
||||
})
|
||||
s = graph.toString()
|
||||
_ = s
|
||||
//fmt.Printf("%s", s)
|
||||
}
|
||||
}
|
||||
3
demo/golang/go.mod
Normal file
3
demo/golang/go.mod
Normal file
@@ -0,0 +1,3 @@
|
||||
module demo
|
||||
|
||||
go 1.13
|
||||
Reference in New Issue
Block a user