在go教程的第2天,有这个练习:
为什么拥有导出字段的私有类型可能有用?
例如:
package geometry
type point struct {
X, Y int;
name string;
}
Run Code Online (Sandbox Code Playgroud)
请注意,它point是小写的,因此不会导出,而字段X和Y是大写的,因此是.在我看来,为了能够访问其中一个导出的字段,您必须能够编写类似的内容.
p.X
Run Code Online (Sandbox Code Playgroud)
但为了使这成为可能,p必须有这样的声明:
var p geomitry.point;
Run Code Online (Sandbox Code Playgroud)
要么
p := new(geomitry.point);
Run Code Online (Sandbox Code Playgroud)
但这是不可能的(afaik),因为不会导出点的类型声明.
我想知道这里发生了什么.
有一个http处理程序的接口:
type Handler interface {
ServeHTTP(*Conn, *Request)
}
Run Code Online (Sandbox Code Playgroud)
这个实现我想我明白了.
type Counter int
func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) {
fmt.Fprintf(c, "counter = %d\n", ctr);
ctr++;
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,"Counter"类型实现了接口,因为它有一个具有所需签名的方法.到现在为止还挺好.然后给出了这个例子:
func notFound(c *Conn, req *Request) {
c.SetHeader("Content-Type", "text/plain;", "charset=utf-8");
c.WriteHeader(StatusNotFound);
c.WriteString("404 page not found\n");
}
// Now we define a type to implement ServeHTTP:
type HandlerFunc func(*Conn, *Request)
func (f HandlerFunc) ServeHTTP(c *Conn, req *Request) {
f(c, req) // the receiver's a func; call it
}
// Convert function to attach …Run Code Online (Sandbox Code Playgroud) 我有一个20字节的十六进制哈希,我想存储在django模型中.如果我使用文本字段,它将被解释为unicode并且它会返回乱码.
目前我正在编码并对其进行解码,这真的使代码混乱,因为我必须能够通过它进行过滤.
def get_changeset(self):
return bin(self._changeset)
def set_changeset(self, value):
self._changeset = hex(value)
changeset = property(get_changeset, set_changeset)
Run Code Online (Sandbox Code Playgroud)
这是一个过滤的例子
Change.objects.get(_changeset=hex(ctx.node()))
Run Code Online (Sandbox Code Playgroud)
这是django开发人员推荐的方法,但我真的很难接受这样一个事实,就是存储20个字节就是这个丑陋的事实.
也许我太过纯粹主义者了,但理想情况下我能够写作
Change.objects.get(changeset=ctx.node())
Run Code Online (Sandbox Code Playgroud)
这些属性允许我写:
change.changeset = ctx.node()
Run Code Online (Sandbox Code Playgroud)
这就像我可以问的那样好.
最近我尝试在我的Web应用程序中集成TinyMce 4.0.我想点击textarea时点击事件,但它不起作用.我查看了官方文档,我尝试了以下代码:
tinyMCE.init({
...
setup : function(ed) {
ed.onClick.add(function(ed, e) {
console.debug('Editor was clicked: ' + e.target.nodeName);
});
}
Run Code Online (Sandbox Code Playgroud)
出现错误:"TypeError:ed.onClick未定义".
所以,我试图直接在iframe上放一个onclick事件,但这是一个失败:
$("iframe").contents().bind('click', function(){
...
});
Run Code Online (Sandbox Code Playgroud)
你有什么想法怎么做?
go ×2
ads ×1
binary-data ×1
coffeescript ×1
cross-domain ×1
django ×1
encoding ×1
iframe ×1
javascript ×1
jquery ×1
python ×1
tinymce ×1
wysiwyg ×1