我正在尝试创建一个结构,它给了我一个错误,告诉我这个领域是未知的.
我想要初始化的结构是:
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它会给出这个错误,所以我不认为这是我一直在运行它的输入.
知道为什么会这样吗?
我正在尝试使用这个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.
有想法该怎么解决这个吗?
我有这个函数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*>>或某个事情正在发生,但我似乎无法弄清楚这一点.
我有一个.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文件。其他人有想法吗?
我有一个用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) 我正在查看 git 别名的 dotfile here。为什么前面有感叹号git add?再看看其他的别名,用的不少!,形式上是$alias_name$ = "!..."。两者用途不同吗?
我查了一些 bash 的用法,!好像是用来获取以前的命令的,但是这个用法好像不一样。有任何想法吗?谢谢!
在像str in [str1, str2, str3]或的Python表达式1 in [1, 2, 3]中,in运算符是使用==还是is将第一个对象与列表中的对象进行比较?
所以我试图创建一个由两个堆栈组成的类.我想为它创建一个构造函数,我希望堆栈最初有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++ ×2
git ×2
go ×2
assembly ×1
bash ×1
c ×1
c++11 ×1
constructor ×1
containment ×1
gitignore ×1
python ×1
python-2.7 ×1
struct ×1