原型函数
func test(i ...interface{}) {
// Code here
}
Run Code Online (Sandbox Code Playgroud)
有可能的使用
type foo struct {
// Fields
}
foos := []foo{
// foo1, foo2 ...
}
test(foos...) // ERROR
test(foos[1], foos[2], ...) // OK
Run Code Online (Sandbox Code Playgroud)
错误
无法使用 foos([]foos 类型的变量)作为要测试的参数中的 []interface{} 值
预期用途是像内置函数一样使用append()
。
https://golang.google.cn/pkg/builtin/#append
func append(slice []Type, elems ...Type) []Type
Run Code Online (Sandbox Code Playgroud)
虽然,正如我所见,append()
不使用interface{}
,这很奇怪,因为在我搜索的任何地方,所有人都说interface{}
当您不知道类型时使用。但他们没有。不,append()
使用名为 的“内置”类型Type
,显然文档说它是一个int
. 虽然,我不能使用它。没有这种类型。如果有的话我也不知道如何使用它。
https://golang.google.cn/pkg/builtin/#Type
type Type int
Run Code Online (Sandbox Code Playgroud)
所以,我在这里很困惑。
为什么展开运算符不能按预期工作?例如,在 Javascript 中,扩展运算符只是将数组扩展为项目。但在 Golang 中,它似乎保留了相同的数组参数类型,但稍后给编译器提供了传播它的指令。这很奇怪。
我们是否能够制作类似的自定义机制append() …
我知道可能这个问题可能会因为它的特殊性而得到一些负面影响而且可能听起来很愚蠢.但我对Python的语法很新,我甚至不确定"变量"是否是答案的一部分.所以,请冷静:)
我在Github 上看这个Repository.
在这里,我在某些线条上看到了一些奇怪的东西(例如57
,89
等等).
作者提出了一些下划线,并在他们后面加了一些逗号.虽然我不知道它们是什么意思:
_, _, param1, params, _, _, expr, _ , app = node
Run Code Online (Sandbox Code Playgroud)
据我所知,放置多个变量的语法是:
var1, var2 ,var3 = 1, 2, "3"
Run Code Online (Sandbox Code Playgroud)
但是在这一点上我不知道会发生什么,因为简单的下划线不被认为是变量,特别是当它们被多次使用时(或者它们是什么?)并且git存储库中的语法不遵循上面的规则.
我搜索了Python的一些语法备忘单,但这与任何内容都不匹配.所以我想得到你们中的一些人的帮助.谢谢
- 我的经验仅限于C/C++/C#/ Java/Javascript [...]
ln
正确。ln -s SOURCE TARGET
$ sudo ln -s ./sites-available/examble.domain.com ./sites-enabled
Run Code Online (Sandbox Code Playgroud)
注意: 问题与NGINX无关,NGINX编译只是为了帮助我意识到问题的存在。下面描述的解决方案适用于任何其他相关问题。
$ sudo nginx -t
nginx: [emerg] open() "/etc/nginx/sites-enabled/example.domain.com" failed (2: No such file or directory) in /etc/nginx/nginx.conf:62
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)
$ file ./sites-enabled/example.domain.com
./sites-enabled/example.domain.com: broken symbolic link to ./sites-available/example.domain.com
Run Code Online (Sandbox Code Playgroud) 我想使用一个命令,它将在一个"If"中包含两个"textboxes.Text".我的意思是当我执行此命令时:
If (textBox1.Text == ("admin")) + (textBox2.Text == ("admin))
或者这 If (textBox1.Text == ("admin) , textBox2.Text == admin))
是不对的.
主要代码是:
private void Label_Click(object sender, EventArgs e)
{
if (textBox2.Text == ("admin")) + (textBox1.Text == ("admin"))
{
Label.Text = "right";
}
else
{
Label.Text = "wrong";
errorProvider1.SetError(errorprovider, "Wrong Username or Password");
}
Run Code Online (Sandbox Code Playgroud)
即我想要做的是,如果两个文本框中的一个是错误的,标签将显示密码或用户名是错误的...任何想法?
我提出这个问题是为了了解您对此事的看法,并看看我是否愚蠢或迂腐。
当存储库层已经可以以更快的方式通过查询完成大部分事情(例如 FindUserByID)时,当服务必须以低效得多的方式手动完成所有这些事情时,我是否“需要”服务层(为了良好的实践)和超级手动方式?
所以,我一直在研究清洁架构,这很好,但不适用于 REST 架构。因为,Clean Architecture 实际上是由控制器层构成的,而 RPC 是处理控制器的层,而不是 REST。REST 处理资源。所以,我删除了“控制器”层,并且我也在考虑是否真的需要一个“服务”层。
所以 REST 需要“服务”和/或“存储库”。奇怪的是,我认为这两者重叠。我知道服务应该处理“业务规则”。但事情是这样的:
由于允许存储库与数据库直接通信,因此它们可以使用数据库查询(sql 或 nosql)。其写入效率更高、读取效率更高、性能也更高效。
比方说,您需要通过 ID 查找用户,然后通过姓名从他的好友列表中选择特定的朋友。
概括?喜欢 20-30 行代码和较慢的性能?
filter := bson.M{
"_id": id,
"friendlist.name": friendsName,
}
projection := bson.M{
"friendlist": 1
}
friend, err := mongoDb.find(filter, projection)
Run Code Online (Sandbox Code Playgroud)
概括?就像3-4行代码,和99%的数据库性能。
那么,“服务层”部分真的有必要吗?当存储库已经可以更有效地自行完成所有工作时,将其拆分为服务层和存储库层是否有任何真正的架构优势?
architecture ×1
autocomplete ×1
bash ×1
c# ×1
css ×1
go ×1
html ×1
linux ×1
ln ×1
python ×1
python-2.7 ×1
python-3.x ×1
rest ×1
slice ×1
sublimetext ×1
syntax ×1
text ×1