我知道Go中的指针允许函数参数的变异,但如果它们只采用引用(使用适当的const或可变限定符),它就不会更简单.现在我们有指针和一些内置类型,如地图和通道隐式传递引用.
我是否遗漏了某些内容或指向Go只是一个不必要的并发症?
我在我的网站上使用Django表单,并希望控制字段的顺序.
这是我定义表单的方式:
class edit_form(forms.Form):
summary = forms.CharField()
description = forms.CharField(widget=forms.TextArea)
class create_form(edit_form):
name = forms.CharField()
Run Code Online (Sandbox Code Playgroud)
该名称是不可变的,只应在创建实体时列出.我使用继承来增加一致性和DRY原则.事实上完全预料到的不是错误的是名称字段在视图/ html的最后列出,但我希望名称字段位于摘要和描述之上.我确实意识到我可以通过将摘要和描述复制到create_form并松散继承来轻松修复它,但我想知道这是否可行.
为什么?想象一下,你在edit_form中有100个字段,并且必须在create_form的顶部添加10个字段 - 复制和维护这两个表单看起来不那么性感.(这不是我的情况,我只是编写一个例子)
那么,我该如何覆盖这种行为呢?
编辑:
显然没有正确的方法来做到这一点,而不经历讨厌的黑客(摆弄.field属性)..field属性是SortedDict(Django的内部数据结构之一),它不提供任何重新排序键:值对的方法.它确实提供了一种在给定索引处插入项目的方法,但这会将项目从类成员移动到构造函数中.这种方法可行,但使代码可读性降低.我认为唯一合适的另一种方法是修改框架本身,这在大多数情况下都不是最优的.
简而言之,代码将变成这样的:
class edit_form(forms.Form):
summary = forms.CharField()
description = forms.CharField(widget=forms.TextArea)
class create_form(edit_form):
def __init__(self,*args,**kwargs):
forms.Form.__init__(self,*args,**kwargs)
self.fields.insert(0,'name',forms.CharField())
Run Code Online (Sandbox Code Playgroud)
这让我闭嘴:)
假设我想在go程序中运行'ls',并将结果存储在一个字符串中.似乎有一些命令在exec和os包中派生进程,但它们需要stdout等的文件参数.有没有办法将输出作为字符串?
在Go中,按字母顺序排列地图中按键的最简单方法是什么?这是我能做到的最短路:
package main
import "container/vector"
import "fmt"
import "sort"
func main() {
m := map[string]string {"b":"15", "z":"123123", "x":"sdf", "a":"12"}
var keys vector.StringVector;
for k,_ := range ( m ) {
keys.Push(k)
}
sort.Sort( &keys )
fmt.Printf("%v\n", keys)
}
Run Code Online (Sandbox Code Playgroud) 是否有CSS选择器允许我根据HTML选择选项值选择元素?
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<p>Display only if an option with value 1 is selected</p>
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种HTML/CSS方法,只显示选定数量的表单字段.我已经知道如何用Javascript做到这一点.
有没有办法做到这一点?
编辑:
问题标题可能会产生误导.我不是要尝试选择框的样式,这已经非常普遍并且已经有很多答案了.我实际上是在尝试<P>
根据选中的值设置元素的样式<select>
.
我真正想做的是根据选定的数值显示多个表单域:
<select name="number-of-stuffs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div class="stuff-1">
<input type="text" name="stuff-1-detail">
<input type="text" name="stuff-1-detail2">
</div>
<div class="stuff-2" style="display:none">
<input type="text" name="stuff-2-detail">
<input type="text" name="stuff-2-detail2">
</div>
<div class="stuff-3" style="display:none">
<input type="text" name="stuff-3-detail">
<input type="text" name="stuff-4-detail2">
</div>
Run Code Online (Sandbox Code Playgroud)
我想显示div.stuff-1
和div.stuff-2
当数的食料= 2且display div.stuff-1
div.stuff-2
以及div.stuff-3
当东西= 2的数.
像这样的 …
我正在研究Go语言,但我想知道是否有任何IDE仅为它开发,但它具有GUI设计功能,如Visual Studio和Netbeans.
我正在写一个实现开放式VG和OpenGL的| ES中去,这两者取决于Khronos的EGL API,据说是为了便于携带,我猜.
出于乐趣和教育原因,我正在OpenGL ES上编写一个OpenVG实现 - 我没有做过很多渲染工作,我想了解更多有关开放API和实践明确标准的实践(更容易看看我是否得到了正确的结果).
据我了解,EGL提供了一个标准API,用于检索绘图上下文(或者它正确调用的内容),而不是使用多个OS提供的API之一(GLX,WGL等)
我很难相信Khronos会经历这样的努力并将标准OpenGL从循环中移开但事实是,我还没有发现OpenGL(真正的交易)如何或者是否与EGL接口或者它是否只是OpenGL ES.如果OpenGL ES可以使用EGL的绘图上下文,标准OpenGL是否也可以使用?
我对这一切都很陌生,这就是为什么我很兴奋,但我正在做的真正项目是一个Go小部件工具包,它利用OpenVG进行绘图操作,并尽可能使用硬件加速.
如果OpenVG,OpenGL和OpenGL ES依赖于EGL,我认为我的问题可以用"是"或"否"来回答.请记住,我昨晚首先进入了这个主题.
OpenGL使用或依赖于EGL吗?
关闭主题,但没有EGL标记.应该有吗?
我正在尝试设置类似的多包项目
./main.go
./subpackage1/sub1_1.go
./subpackage1/sub1_2.go
./subpackage2/sub2_1.go
./subpackage2/sub2_2.go
其中main.go同时导入subpackage1和subpackage2.而subpackage2导入subpackage1.
我一直在寻找去makefile的例子,但我找不到任何支持这种设置的东西.任何的想法?
我们最近一直在讨论操作系统类中的线程,我想到了一个问题.
由于Go,(和Java)使用用户空间线程而不是内核线程,这是否意味着您无法有效利用多个内核,因为操作系统只为进程分配CPU时间而不是线程本身?