我正在尝试为html5输入创建一个只应包含有效文件夹名称的正则表达式.
为了支持各种各样的文件系统,我想过只允许:
现在我的正则表达式看起来像这样:
[a-zA-Z0-9][a-zA-Z0-9 ]{0,254}[a-zA-Z0-9]?
Run Code Online (Sandbox Code Playgroud)
最后的问号是一个问题,因为如果没有给出结束字符,那么最后会允许空格.
但如果我把它遗漏,我需要添加至少2个字符.如果我添加?到第一个模式,则会出现类似的问题.
现在我被卡住了.我可以在没有255的字符限制的情况下完成它,但随之而来的一切都崩溃了.
我有这些序列化器:
# Tickets
class TicketSerializer(serializers.ModelSerializer):
class Meta:
model = Ticket
depth = 2
class TicketWriteSerializer(serializers.ModelSerializer):
class Meta:
model = Ticket
Run Code Online (Sandbox Code Playgroud)
而这个观点:
class Tickets(generics.ListCreateAPIView):
model = Ticket
serializer_class = TicketSerializer
def create(self, request, *args, **kwargs):
serializer = TicketWriteSerializer(data=request.DATA, files=request.FILES)
if serializer.is_valid():
self.pre_save(serializer.object)
self.object = serializer.save(force_insert=True)
self.post_save(self.object, created=True)
headers = self.get_success_headers(serializer.data)
serializer = TicketSerializer(serializer.object)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)
在我的urls文件中我添加如下:
url(r'^tickets/', Tickets.as_view(model=Tickets), name='tickets')
Run Code Online (Sandbox Code Playgroud)
对于这个型号:
class Ticket(models.Model):
customer = models.ForeignKey('Customer', null=True, blank=True)
act = models.ForeignKey('Act')
row = models.PositiveIntegerField()
seat = models.PositiveIntegerField() …Run Code Online (Sandbox Code Playgroud) 我是OpenGL的初学者,并且为通用课程构建了一个小型引擎。现在,我需要实现的一个约束/功能是在运行时更改纹理质量(插值)。
因此,而不是例如:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
Run Code Online (Sandbox Code Playgroud)
它应该更改为mipmaps
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)
Run Code Online (Sandbox Code Playgroud)
现在,我有一个Texture类,将其抽象化并加载图像并为纹理等创建ID。
我会做的:我会一一绑定游戏中的所有纹理,然后再次设置参数。
或者,如果我想影响所有纹理,是否有更高级或更快速的方法来实现?
我导入了这个:
import scala.collection.JavaConversions._
val size: Int = blubb.getSize
var fields: ArrayBuffer[Field] = new ArrayBuffer[Field]
size match
{
case 1 => fields.append(field)
case 2 => fields = field.getNeighbours)
}
Run Code Online (Sandbox Code Playgroud)
现在getNeighbours返回一个java.util.ArrayList而不是一个ArrayBuffer(它是一个我无法控制的Java类).
编译说
ArrayList [Field]类型的表达式不符合预期类型ArrayBuffer [Field]
JavaConversions不应该处理这个吗?如何轻松地将ArrayList转换为ArrayBuffer?(我不想在Scala代码中用ArrayList替换ArrayBuffer!)
我一直在尝试从两个不同的VBO切换到只有一个具有交错属性的VBO.我可以在C++中实现它,但在Scala中它证明是非常困难的.
这是我的实现:
class Mesh(positions: Array[Float], textureCoordinates: Array[Float], indices: Array[Int])
{
// Create VAO, VBO and a buffer for the indices
val vao: Int = glGenVertexArrays
val vbo: Int = glGenBuffers
val ibo: Int = glGenBuffers
setup
private def setup(): Unit =
{
val interleavedBuffer: FloatBuffer = prepareFloatBuffer(positions ++ textureCoordinates)
val indicesBuffer: IntBuffer = prepareIntBuffer(indices)
// One VAO to bind them all!
glBindVertexArray(vao)
glBindBuffer(GL_ARRAY_BUFFER, vbo)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo)
// Fill buffers with data
glBufferData(GL_ARRAY_BUFFER, interleavedBuffer, GL_STATIC_DRAW)
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indicesBuffer, GL_STATIC_DRAW)
// Set vertex …Run Code Online (Sandbox Code Playgroud) 给你一个最小的例子:
object Main extends JSApp
{
val someThing: String = determineSomething("test")
def main(): Unit =
{
println(someThing)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,有两种可能性:
private def determineSomething(s: String): String = "succeeded"
Run Code Online (Sandbox Code Playgroud)
如果项目是这样执行的,那么我会得到一个日志条目
成功
但是当我使用更多功能语法时:
private val determineSomething: (s: String) => "succeeded"
Run Code Online (Sandbox Code Playgroud)
我明白了
TypeError: this.determineSomething$1 is null
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么会发生这种情况,就像在(JVM)repl中一样,两种方式都可以完美地运行.