这是一个不起作用的简单go程序:
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
fmt.Println(getProperty(&v, "X"))
}
func getProperty(v *Vertex, property string) (string) {
return v[property]
}
Run Code Online (Sandbox Code Playgroud)
错误:
prog.go:18:无效操作:v [property](类型*Vertex的索引)
我想要的是使用其名称访问Vertex X属性.如果我这样做v.X,但v["X"]没有.
谁能告诉我如何使这项工作?
在chrome canary中,不推荐使用layerX和layerY,但我们应该使用什么呢?
我找到了offsetX,但它不适用于Firefox.所以为了在webkit上没有警告的情况下获取layerX,我已经这样做了:
var x = evt.offsetX || evt.layerX,
y = evt.offsetY || evt.layerY;
Run Code Online (Sandbox Code Playgroud)
但这看起来相当复杂!这是否真的应该让layerX在所有浏览器中运行?
中间文本和varchar(65535)是否相同?我在这里的意思是他们是将数据直接存储在表中还是mediatext类型存储指针?我问这个是因为如果我尝试创建一个varchar(65535),它会自动转换为中间文本(如果长度实际上大于21811).
我有另一个相关的问题是:
我在桌子上有一些字段,我希望能够存储很多字符(大约10'000).但实际上,它几乎总是存储不超过10个字符.
所以我的问题是,我是否需要使用文本或varchar(10000)类型以获得最佳性能?
我相信varchar类型更适合这种情况.
提前感谢您的回答.
我不明白的是为什么他们说自从mysql 5.0.3以来我们可以创建一个varchar(65535),但是当我们尝试这样做时,它会将它转换为一个中间文本.对我来说,varchar和text(mediumtext include)之间的区别在于它们的存储方式(使用指针与否).那么为什么他们说我们可以创建长度为65535的varchar,如果我们不能呢?
我找不到一种方法来将varchar列排序为float.这是我的SQL请求:
SELECT guid, number FROM table ORDER BY 'CAST(number AS FLOAT) DESC'
Run Code Online (Sandbox Code Playgroud)
"数字"列的定义如下:
number varchar(20) ascii_general_ci
Run Code Online (Sandbox Code Playgroud)
此列中为我的测试定义的值为:
0.00
200.00
20.00
100.00
Run Code Online (Sandbox Code Playgroud)
MySQL完全忽略了CAST运算符并按guid对列进行排序......
MySQL中是否有错误或者我做错了什么?
我找不到任何有关在PHP中设置wss连接的信息.我没有问题连接扔ws.我正在使用这个非常好的库来执行此操作:https://github.com/albeva/php-websocket
但我的网站使用https,我需要一个WebSocket安全连接,以避免Firefox抱怨连接不安全的事实.
在此先感谢您的帮助.
编辑
以下是库用于启动套接字连接的代码:
$master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!is_resource($master)) {
$this->throwSocketError();
}
// set options
if (!socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1)) {
$this->throwSocketError();
}
// bind
if (!socket_bind($master, $this->host, $this->port)) {
$this->throwSocketError();
}
// listen for connections
if (!socket_listen($master, SOMAXCONN)) {
$this->throwSocketError();
}
Run Code Online (Sandbox Code Playgroud)
我相信我需要更改此代码,但我找不到如何.
我知道这个问题已被多次询问,但我想答案一下.
我正在开发一个Web应用程序,它将允许我的客户管理他们的客户,兑现,发票,预订,网站和许多其他事情.我正在使用MySQL和一个包含大约30个表的数据库.
我希望我的解决方案能够处理大约100,000个或更多客户.我的客户的需求将大不相同.从每年100个插入到一个,每天1000个插入到另一个.
现在我正在使用一个数据库(但我还在开发中),其中每个表都有一个帐户字段.我创建了一个模型层来访问自动将帐户附加到每个查询的数据(WHERE guid = 1成为WHERE帐户= X AND guid = 1).这项工作非常好,并且很容易维护,但我担心混合客户数据的事实.请注意,我使用的是增量ID而不是GUID.
我的问题是,我应该继续做这样的事情还是应该为每个客户创建一个数据库?
可能重复:
如何动态合并两个JavaScript对象的属性?
我有两个对象a和b定义如下:
a = {
a: 1,
af: function() { console.log(this.a) },
};
b = {
b: 2,
bf: function() { console.log(this.b) },
};
Run Code Online (Sandbox Code Playgroud)
我现在想要的是创建另一个将获得a和b属性的对象,如下所示:
c = {
a: 1,
af: function() { console.log(this.a) },
b: 2,
bf: function() { console.log(this.b) },
}
Run Code Online (Sandbox Code Playgroud)
请注意,a和b需要保持不变.
知道如何做到这一点?
我有一个相当大的Web应用程序构建与SproutCore和PHP作为后端.我现在想要的是使用websockets实时更新我的客户端应用程序.据我所知,PHP处理持久连接真的很糟糕.所以我一直在想我可以使用Go来处理websockets连接,并在每次收到请求时调用我的PHP脚本(这个包似乎可以实现).
所以我的第一个问题是,你们认为这是一个好主意(而且一个可行的想法,我还没有找到人们这样做)或者我应该坚持使用PHP?
如果我使用Go来处理websockets连接,我也一直在想我可以逐步从PHP转移到只使用Go(因为它比PHP快得多).如果我这样做,我将必须能够从PHP调用一些Go包.可以用PHP exec函数完成吗?有没有更好的办法 ?再说一遍,这是一个好主意吗?
我正在开发一个使用gettext的网站.在当地,每件事都很有效.但今天我已经在我的生产服务器上传了我的网站,gettext不再需要工作了.我想使用的语言是fr_FR和en_US.gettext翻译我的文本,如果我用法语显示我的网站,但英语没有任何意义.
当我在我的debian服务器上执行locale -a时,我得到:
C
fr_FR.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)
我是法国人,所以我觉得每件事都很正常.但是当我这样做:locale-gen en_US或locale-gen en_US.UTF-8然后又是locale -a时,没有任何改变.!这是正常的吗?
以下是PHP代码示例以防万一.但由于gettext适用于法语,我相信问题不在这里.
$langage = 'en_US.utf8';
putenv("LC_ALL=$langage");
setlocale(LC_ALL, $langage);
$languageFileName = "default"; // locale/en_US/LC_MESSAGES/default.mo
bindtextdomain($languageFileName, PATH.'/locale');
bind_textdomain_codeset($languageFileName, 'UTF-8');
textdomain($languageFileName);
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
假设我有这段代码:
some code 1
// @if (debug)
code to remove
// @endif
some code 2
// @if (debug)
code to remove
// @endif
some code 2
Run Code Online (Sandbox Code Playgroud)
我想删除// @if (debug)和之间的所有代码// @endif.为此,我找到了一个sed命令,如果只有一个实例,// @if (debug)但是如果有多个实例则不起作用,因为sed不支持非贪婪匹配(因此,在上面的示例中,也会删除some code 2).这是命令:
sed -r -n '1h;1!H;${;g;s/\/\/\s*@if\s*\(\s*debug\s*\)([^\0]*?)\/\/\s*@endif//g;p;}' file_path.js > file_path.min.js
Run Code Online (Sandbox Code Playgroud)
我已经读过,我可以使用perl哪个支持非贪婪的比赛,但是我无法让它发挥作用.这是一个尝试:
perl -pe 's/\/\/\s*@if\s*\(\s*debug\s*\)([^\0]*?)\/\/\s*@endif//g' file_path.js > file_path.min.js
perl -0pe 's/\/\/\s*@if\s*\(\s*debug\s*\)([^\0]*?)\/\/\s*@endif//g' file_path.js > file_path.min.js
perl -0777 -pe 's/\/\/\s*@if\s*\(\s*debug\s*\)([^\0]*?)\/\/\s*@endif//g' file_path.js > file_path.min.js
Run Code Online (Sandbox Code Playgroud)
有关如何使其适用的任何想法sed,perl或任何其他类似的工具?