小编obj*_*ect的帖子

How to read input when debugging GO in Visual Studio Code?

I want to debug a Go program in Visual Studio Code 1.24.0 which goes like this:

package main

import (
   "fmt"
)

func main() {
 fmt.Println("Hello World")
 var input int
 fmt.Scanf("%d", &input)
 fmt.Printf("Hello %v", input)
}
Run Code Online (Sandbox Code Playgroud)

When start debugging, the program waits for input. I tried giving input via Debug Console, but it didn't work. Properties like externalConsole don't seem to work in launch.json for Go. Any inputs?

visual-studio-code

14
推荐指数
3
解决办法
4903
查看次数

转义分析显示通道为泄漏参数

我正在尝试做的事情: 我试图通过三个阶段来理解/构建go管道。阶段1向通道A写入。阶段2具有多个go例程。每个go例程都从通道A读取,执行一些操作并将结果写入通道Bn(通道B1,B2..Bn)。第3阶段创建了n(=第2阶段中的通道总数)go例程,每个go例程从第2阶段的一个Channel中读取。它基于https://blog.golang.org/pipelines中描述的有限并行性

问题: 管道按预期工作正常,操作在go例程之间分配。但是,当我进行转义分析时,发现从一个阶段发送到另一个阶段的通道参数被报告为“泄漏参数”。

代码段: 为简单起见,我发布的代码显示第1阶段通道的创建,第2阶段则打印从第1阶段读取的值。

package main

import "fmt"

func createStageOne(numOfJobs int) <-chan int {
   stageOneChannel := make(chan int)
   go func(nJobs int) {
      for i := 0; i < nJobs; i++ {
        stageOneChannel <- i
      }
      close(stageOneChannel)
   }(numOfJobs)
   return stageOneChannel
} // stageOneChannel closes and go routine exits once nJobs are completed 

func createStageTwo(in <-chan int, completionFlag chan struct{}) {
    go func() {
        for n := range in {
            fmt.Println("Received from stage 1 channel ", n)
        } …
Run Code Online (Sandbox Code Playgroud)

go

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

连接重置与对等点重置连接

我有一个客户端服务器应用程序。在客户端(我无法访问客户端代码),间歇性地发生套接字异常,显示“ java.net.SocketException:连接重置”。它不是“java.net.SocketException:连接由对等方重置”。有了这些信息,我可以断定问题出在客户端吗?

java sockets web-services

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

get函数中的返回值

这是一个理解在下面的场景中实现get函数的正确方法的问题.

我得到了以下课程:

class A
{
   string m_sName;
public:
   A(): m_sName ("this") {}
   const string& getName() const
   {
      return m_sName;
   }
};
Run Code Online (Sandbox Code Playgroud)

上面执行get函数的问题是,它允许客户端修改数据成员.那是:

int main ()
{
   A a;

   const string& data_mem = a.getName();

   string& s = const_cast<string&> (data_mem);

   s += " Pointer";

   cout << a.getName().c_str () << endl;

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出将是:这个指针

我知道我们可以使用引用参数来获取函数或只是返回字符串.但两者都会创造新的对象.

有一个更好的方法吗?或者禁止const_cast(在用户定义的类上)?

c++

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

标签 统计

c++ ×1

go ×1

java ×1

sockets ×1

visual-studio-code ×1

web-services ×1