小编Jul*_*ien的帖子

struct literal中的未知字段

我正在尝试创建一个结构,它给了我一个错误,告诉我这个领域是未知的.

我想要初始化的结构是:

package yelk

type PhoneOptions struct {
    phone string
    cc    string
    lang  string
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试像这样初始化一个PhoneOptions结构cli.go:

number := os.Args[1]
phoneOptions := yelk.PhoneOptions{phone: number}
Run Code Online (Sandbox Code Playgroud)

我这样做,go run cli.go 5555555555但它给了我一个错误

./cli.go:29: unknown yelk.PhoneOptions field 'phone' in struct literal
Run Code Online (Sandbox Code Playgroud)

我看到这个错误的所有StackOverflow帖子似乎来自嵌套结构.我想知道我做错了什么.cli.go如果我只是尝试运行go build它会给出这个错误,所以我不认为这是我一直在运行它的输入.

知道为什么会这样吗?

go

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

包的类型不能用作出售包的类型

我正在尝试使用这个Golang Yelp API包.在它的一些结构中,它使用guregu的null包中定义的类型.

我想声明一个在Yelp API包中定义的结构,其中一些字段有null.Float一个值(即这个结构,我试图使用它).所以在我的程序中,我导入了Yelp API包和guregu的null包,并尝试声明结构,ip.Lat和ip.Lat是float64s.(null.FloatFrom定义):

 33         locationOptions := yelp.LocationOptions{
 34                 ip.Zip,
 35                 &yelp.CoordinateOptions{
 36                         Latitude: null.FloatFrom(ip.Lat),
 37                         Longitude: null.FloatFrom(ip.Lon),
 38                 },
 39         }
Run Code Online (Sandbox Code Playgroud)

但是当我运行该程序时,它告诉我:

./cli.go:36: cannot use "github.com/guregu/null".FloatFrom(ip.Lat) (type
"github.com/guregu/null".Float) as type "github.com/JustinBeckwith/go-
yelp/yelp/vendor/github.com/guregu/null".Float in field value
Run Code Online (Sandbox Code Playgroud)

我尝试了两件事:

1)我没有导入null包,导致Go抱怨null未定义.2)我也尝试直接导入销售包,这导致Go告诉我use of vendored package not allowed.

有想法该怎么解决这个吗?

struct go

27
推荐指数
2
解决办法
9648
查看次数

type不提供调用操作符

我有这个函数order,它返回vector<Node*>

vector<Node*> order(vector<string> nodes, vector<pair<string, string>> dependencies) {
             Graph graph = buildGraph(nodes, dependencies);
             vector<Node*> order = buildOrder(graph.getNodes());
             return order;
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

vector<Node*> order2 = order(nodes, deps);
Run Code Online (Sandbox Code Playgroud)

但是,编译器会出现此错误:

error: type 'std::__1::vector<Node *, std::__1::allocator<Node *> >' does not provide a call operator
        vector<Node*> order2 = order(nodes, deps);
                               ^~~~~
1 error generated.
Run Code Online (Sandbox Code Playgroud)

出了什么问题?'std::__1::vector<Node *, std::__1::allocator<Node *> >'似乎暗示有一个vector<Node*, <Node*>>或某个事情正在发生,但我似乎无法弄清楚这一点.

c++ c++11

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

如何gitignore Go二进制文件?

我有一个.gitignore像这样的文件:

# no binaries
*/
!*.go/
!.gitignore
Run Code Online (Sandbox Code Playgroud)

我认为这*/意味着忽略所有子目录中的所有文件(因此每个文件),!*.go/意味着不忽略*.go所有子目录中的所有文件,并且!.gitignore意味着不忽略.gitignore

但是,我现在遇到的问题是,当我*.go在子目录中创建新文件时,现在将其忽略。

如何正确gitignore所有编译的二进制文件,而不忽略*.go文件?

我现在有

**/*  
!**/*.go
!.gitignore
Run Code Online (Sandbox Code Playgroud)

但是它仍然忽略ch1目录中的所有* .go文件。其他人有想法吗?

git gitignore

5
推荐指数
2
解决办法
4539
查看次数

推送和更改%esp帧指针

我有一个用C编写的小程序echo():

/* Read input line and write it back */
void echo() {
    char buf[8];  /* Way too small! */
    gets(buf);
    puts(buf);
}
Run Code Online (Sandbox Code Playgroud)

相应的汇编代码:

1 echo:
2 pushl %ebp                //Save %ebp on stack
3 movl  %esp, %ebp          
4 pushl %ebx                //Save %ebx
5 subl  $20, %esp           //Allocate 20 bytes on stack
6 leal  -12(%ebp), %ebx     //Compute buf as %ebp-12
7 movl  %ebx, (%esp)        //Store buf at top of stack
8 call  gets                //Call gets
9 movl  %ebx, (%esp)        //Store buf …
Run Code Online (Sandbox Code Playgroud)

c assembly buffer-overflow

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

在 git add 之前添加感叹号有什么意义?

我正在查看 git 别名的 dotfile here。为什么前面有感叹号git add?再看看其他的别名,用的不少!,形式上是$alias_name$ = "!..."。两者用途不同吗?

我查了一些 bash 的用法,!好像是用来获取以前的命令的,但是这个用法好像不一样。有任何想法吗?谢谢!

git bash

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

'in'运算符是否使用"=="或"is"进行比较?

在像str in [str1, str2, str3]或的Python表达式1 in [1, 2, 3]中,in运算符是使用==还是is将第一个对象与列表中的对象进行比较?

python python-2.7 containment

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

c ++构造函数 - 如何在没有new的情况下启动?

所以我试图创建一个由两个堆栈组成的类.我想为它创建一个构造函数,我希望堆栈最初有0个元素:

class twoStacks {
    std::stack<int> mins;
    std::stack<int> values;
    twoStacks():
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我收到一个错误,"错误:期望的类成员或基类名称." 为什么我不能有一个空的构造函数?(我正在使用clang-600.0.56)

我是否首先需要一个构造函数,因为我只想启动空堆栈?当我将元素推入堆栈时会导致问题吗?

是否有关于如何构建这样的类的指南?我的意思是,我应该使用两个指针来代替堆栈吗?如果我使用指针,我会使用new关键字启动.哪种方式更受欢迎?

例如,如果这个类有另一个成员变量/值int size,我会列出将它启动为0.但是当它是一个容器时该怎么办?我假设如果有对流,它们是相同的,无论它们是堆栈,向量还是任何其他容器(如果我错了,请纠正我).

c++ constructor

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