小编Dav*_*vid的帖子

在 go 中将切片项目从一个位置移动到另一个位置

我试图将一个项目从一个位置移动到一个切片内的另一个位置。去游乐场

indexToRemove := 1
indexWhereToInsert := 4

slice := []int{0,1,2,3,4,5,6,7,8,9}    

slice = append(slice[:indexToRemove], slice[indexToRemove+1:]...)
fmt.Println("slice:", slice)    

newSlice := append(slice[:indexWhereToInsert], 1)
fmt.Println("newSlice:", newSlice)

slice = append(newSlice, slice[indexWhereToInsert:]...)
fmt.Println("slice:", slice)
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

slice: [0 2 3 4 5 6 7 8 9]
newSlice: [0 2 3 4 1]
slice: [0 2 3 4 1 1 6 7 8 9] 
Run Code Online (Sandbox Code Playgroud)

但我希望输出是这样的:

slice: [0 2 3 4 5 6 7 8 9]
newSlice: [0 2 3 4 1]
slice: [0 2 3 4 1 …
Run Code Online (Sandbox Code Playgroud)

go

6
推荐指数
2
解决办法
5769
查看次数

在 Visual Studio Code 和 Delve 调试器中使用标签调试 Go

答: 根据putus的回答,我想出了以下配置来一键构建和调试

首先,您需要添加一个任务来构建具有相应标签的二进制文件。

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "0.1.0",
  "command": "bash",
  "isShellCommand": true,
  "args": [""],
  "showOutput": "always",
  "tasks": [
        {
            "taskName": "buildBinWithTag",
            "command": "go",
            "args": ["build", "-o", "BinaryName", "-tags", "THISISATAG"],
            "isShellCommand": true            
        }       
    ]
}
Run Code Online (Sandbox Code Playgroud)

此任务应在调试器启动之前执行。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "DebugBinWithTag",    //added config
      "type": "go",
      "request": "launch",
      "mode": "exec",
      "remotePath": "",
      "port": 2345,
      "host": "127.0.0.1",
      "program": "${workspaceRoot}/BinaryName",
      "env": {},
      "args": [],
      "showLog": true,
      "preLaunchTask": "buildBinWithTag"
    }
  ]
} 
Run Code Online (Sandbox Code Playgroud)

原始问题 …

debugging go visual-studio-code

4
推荐指数
1
解决办法
5595
查看次数

使用moment.js解析icalendar日期时间YYYYMMDDTHHMMSSZ

我正在尝试用moment.js解析YYYYMMDDTHHMMSSZ格式,但我总是得到"Invalide date".

有没有办法解析它?

javascript icalendar momentjs

1
推荐指数
1
解决办法
1860
查看次数

删除指针值不会引起恐慌

为什么以下代码没有恐慌?test绝对是一个指针.随着fmt.Println(people[0].Name)代替fmt.Println(test.Name)它的恐慌.

package main

import "fmt"

func main() {

    type Person struct {
        Id   int
        Name string
    }

    people := make(map[int]*Person)

    people[1] = &Person{0, "Name"}
    fmt.Println(people[0].Name)

    test := people[0]
    test.Name = "Name2"
    fmt.Println(test.Name)

    people[0].Name = "Name3"
    fmt.Println(test.Name)

    delete(people, 0)

    fmt.Println(test.Name)
}
Run Code Online (Sandbox Code Playgroud)

操场

dictionary pointers go

0
推荐指数
1
解决办法
47
查看次数