小编Dan*_*nte的帖子

如何从控制台线读取输入?

我想从命令行读取输入,但是在我被提示输入之前,我的尝试已经结束,程序退出.我在C#中寻找相当于Console.ReadLine()的东西.

这就是我目前拥有的:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter text: ")
    text, _ := reader.ReadString('\n')
    fmt.Println(text)

    fmt.Println("Enter text: ")
    text2 := ""
    fmt.Scanln(text2)
    fmt.Println(text2)

    ln := ""
    fmt.Sscanln("%v", ln)
    fmt.Println(ln)
}
Run Code Online (Sandbox Code Playgroud)

go

251
推荐指数
10
解决办法
25万
查看次数

如何在不使用时间的情况下等待所有goroutine完成.睡眠?

此代码选择同一文件夹中的所有xml文件,与调用的可执行文件一样,并且异步地将处理应用于回调方法中的每个结果(在下面的示例中,只打印出文件的名称).

如何避免使用sleep方法来保持main方法退出?我有问题缠绕我的头围绕通道(我认为这是需要的,同步结果)所以任何帮助表示赞赏!

package main

import (
    "fmt"
    "io/ioutil"
    "path"
    "path/filepath"
    "os"
    "runtime"
    "time"
)

func eachFile(extension string, callback func(file string)) {
    exeDir := filepath.Dir(os.Args[0])
    files, _ := ioutil.ReadDir(exeDir)
    for _, f := range files {
            fileName := f.Name()
            if extension == path.Ext(fileName) {
                go callback(fileName)
            }
    }
}


func main() {
    maxProcs := runtime.NumCPU()
    runtime.GOMAXPROCS(maxProcs)

    eachFile(".xml", func(fileName string) {
                // Custom logic goes in here
                fmt.Println(fileName)
            })

    // This is what i want to get rid of
    time.Sleep(100 * time.Millisecond) …
Run Code Online (Sandbox Code Playgroud)

synchronization go goroutine

92
推荐指数
3
解决办法
4万
查看次数

如何在Entity Framework 5 Code First迁移中重命名数据库列而不丢失数据?

我使用EF 5.0 Code First Migrations成功运行了默认的ASP.NET MVC 4模板.但是,当我更新模型属性名称时,EF 5.0将删除相应的表列数据.

是否可以以某种方式重命名表列而不以自动方式删除数据?

.net c# entity-framework entity-framework-5

68
推荐指数
4
解决办法
3万
查看次数

为什么我需要使用http.StripPrefix来访问我的静态文件?

main.go

package main

import (
    "net/http"
)

func main() {
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

目录结构:

%GOPATH%/src/project_name/main.go
%GOPATH%/src/project_name/static/..files and folders ..
Run Code Online (Sandbox Code Playgroud)

即使在阅读完文档后,我也无法理解http.StripPrefix这里究竟是做什么的.

1)localhost:8080/static如果删除,为什么我无法访问http.StripPrefix

2)/static如果删除该功能,哪个URL映射到文件夹?

http url-rewriting url-routing go server

32
推荐指数
2
解决办法
1万
查看次数

如何从Windows交叉编译到Linux?

我已经在Windows机器上安装了Go 1.2,编写了一个虚拟程序并分别设置了环境变量GOARCHGOOS"AMD64"和"linux".

当我发出" go build"命令时,我收到一个错误:

go build runtime: linux/amd64 must be bootstrapped using make.bat
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

cross-compiling go

28
推荐指数
3
解决办法
5万
查看次数

Go中的.a文件是什么?

在GO标准库中,我的Go安装下有源文件:

C:\Go\src\pkg
Run Code Online (Sandbox Code Playgroud)

源文件夹下的包对应于此处的.a文件:

C:\Go\pkg\windows_amd64
Run Code Online (Sandbox Code Playgroud)

什么是.a文件?它们用于什么以及它们是如何产生的.我注意到,当我这样做时,它们会自动生成go get libraryhostedingithub.

go

25
推荐指数
4
解决办法
5506
查看次数

如何从根目录中包含stdafx.h?

使用VS中的"显示所有文件"选项,我添加了一个文件夹并在该文件夹中创建了一个新类.由于我使用的是预编译头文件,因此我还需要包含相对于新类文件的根目录中的stdafx.h.

在我的cpp文件中我有

#include "..\stdafx.h"
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误C1010:查找预编译头时意外结束文件.你忘了在你的来源添加'#include"stdafx.h"'吗?

我的理解是,..应该指示编译器进入一个目录级别?

c++ visual-c++

23
推荐指数
4
解决办法
2万
查看次数

何时使用缓冲通道?

缓冲通道的用例有哪些?如果我想要多个并行动作,我可以使用默认的同步通道eq.

package main
import "fmt"
import "time"

func longLastingProcess(c chan string) {
    time.Sleep(2000 * time.Millisecond)
    c <- "tadaa"
}

func main() {
    c := make(chan string)
    go longLastingProcess(c)
    go longLastingProcess(c)
    go longLastingProcess(c)
    fmt.Println(<- c)
}
Run Code Online (Sandbox Code Playgroud)

增加缓冲区大小的实际情况是什么?

go

22
推荐指数
5
解决办法
7742
查看次数

如何以一种惯用的方式预分配和填充一些指针?

http://play.golang.org/p/j-Y0mQzTdP

package main

import "fmt"

type UselessStruct struct {
    a int
    b int
}

func main() {
    mySlice := make([]*UselessStruct, 5)
    for i := 0; i != 5; i++ {
        mySlice = append(mySlice, &UselessStruct{})
    }

    fmt.Println(mySlice)
}
Run Code Online (Sandbox Code Playgroud)

输出: [<nil> <nil> <nil> <nil> <nil> 0xc010035160 0xc010035170 0xc010035180 0xc010035190 0xc0100351a0]

我想做的是为5个UselessStructs预分配内存,存储为指针.如果我声明一片struct值eq:

mySlice := make([]UselessStruct, 5)
Run Code Online (Sandbox Code Playgroud)

然后这会创建5个空结构 - 附加不会替换空结构,而是继续添加到切片,所以这个代码的最终结果:

http://play.golang.org/p/zBYqGVO85h

package main

import "fmt"

type UselessStruct struct {
    a int
    b int
}

func main() {
    mySlice := make([]UselessStruct, 5)
    for i := …
Run Code Online (Sandbox Code Playgroud)

go slice

15
推荐指数
2
解决办法
2万
查看次数

是否可以组织c ++头文件和cpp文件?

我不确定我是否在问一个有效的问题,但是这里有.

我有c ++解决方案的结构

[文件夹]头文件 -

... 200个头文件..

[文件夹]源文件 -

... 200个文件..

......休息

是否可以按文件夹组织标题和源文件,就像在C#项目中一样?我面临的问题是,随着项目的发展,如果它们按功能组织(例如c#项目中的文件夹和命名空间),那么浏览大量文件会更加容易导航,这将更容易导航. .

是否有某种标准,可以由各种编译器支持,而不仅仅是Visual Studio?

例:

[文件夹]头文件 -

  • [文件夹] X域
    • 100个头文件
  • [文件夹] Y域名
    • 100个头文件

[文件夹]源文件 -

  • [文件夹] X域
    • 100 cpp文件
  • [文件夹] Y域名
    • 100 cpp文件

......休息

c++ visual-studio-2012

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