https://developers.google.com/appengine/docs/python/ndb/
https://developers.google.com/appengine/docs/python/ndb/queries
ndb.gql和ndb.query之间有区别吗?(旁边的语法)
例如
cursor = ndb.gql("select * from Account")
Run Code Online (Sandbox Code Playgroud)
VS
cursor = Account.query()
Run Code Online (Sandbox Code Playgroud)
因为我喜欢ndb.query,因为我觉得它更具可读性
例:
acc=Account.query(Account.username==form.username.data,Account.password==form.password.data)
如果这两种方法在引擎盖下不同/相等,我找不到任何信息.
=>也许有性能权衡?
如果您习惯使用SQL,请注意使用GQL时的错误假设.GQL被翻译为NDB的本机查询API.这与典型的对象关系映射器(如SQLAlchemy或Django的数据库支持)不同,API调用在传输到数据库服务器之前会被转换为SQL.GQL不支持数据存储修改(插入,删除或更新); 它只支持查询.
我想ndb.query应该"更快",因为它不需要被正确翻译?
我正在玩Play的第一步!框架和我遇到了一些问题.我可以毫无问题地创建和实现项目.
现在,如果我添加一个新视图,例如'sometest.scala.html',我尝试在'Application'中使用它,Eclipse会将此文件标记为错误.
package controllers;
import play.*;
import play.mvc.*;
import views.html.*;;
public class Application extends Controller {
public static Result index() {
return ok(sometest.render("test")); // this line is marked red
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse标记为红色,即使它有效.如果我去localhost:9000,我可以看到我的变化.
我的视图文件夹如下所示:
app
--views
----index.scala.html
----main.scala.html
----sometest.scala.html
Run Code Online (Sandbox Code Playgroud)
我创建了sometest作为html文件,并将文件名设置为.scala.html
简单方案:
运行你的应用程序
$ cd myapp
$ play
$ run
Run Code Online (Sandbox Code Playgroud)
转到你的webrwoser并输入:localhost:9000
在views文件夹中创建一个新的.scala.html文件.
刷新您的网站localhost:9000
完成.
#include <iostream>
using namespace std;
class Test {
int a;
public:
int getA() {
return a;
}
Test(): a(1){}
Test(int i): a(i){}
};
int main() {
Test t1(100);
cout << sizeof(t1) << " " << sizeof(1) << endl; // 4 4
return 0;
}
Run Code Online (Sandbox Code Playgroud)
似乎 C++ 中的类根本没有开销。t1 的大小为 4,就像一个整数。如果我向 Test 添加另一个 int 成员,它会将其大小增加到 8。
我会期望大于 4 的东西
课程没有开销是真的吗?
首先,我阅读了官方比较OpenSG和OpenSceneGraph。我目前的目标是创建一个用于学习目的的小型游戏引擎。我从纯 OpenGL 开始,但后来我发现了那些看起来很不错的场景图库。
我想知道这两个场景图之间的区别。他们的比较非常模糊。例如,OSG 表示 OpenSG 在多线程方面可能更好。
OpenSG 声明,我引用
OpenScenegraph 一开始就严重依赖于 Performer 方面...... OpenSG 更倾向于 Fahrenheit 方面......这些天,为了你的自身利益,你应该使用像 OpenSG 这样的开源系统。
我想知道 OpenSG 和 OpenSceneGraph 之间的区别。
场景图使您可以推断其位置 - >如果不需要渲染一个节点,则不需要渲染该节点的子节点.
但是,如果场景中的物体不断改变位置,它似乎可能不是最佳方法,因此您总是需要更新场景图.
我想知道是否有一种完全不同的降低场景复杂度的方法?
我目前正在使用openscenegraph,它使用自己的智能指针.但我想使用std c ++ 11智能指针.
现在这是工作示例代码
osg::ref_ptr<osg::Uniform> SineUniform = new osg::Uniform( "Sine", 0.0f );
Run Code Online (Sandbox Code Playgroud)
但是当我做这样的事情
std::unique_ptr<osg::Uniform> SineUniform = new osg::Uniform( "Sine", 0.0f );
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误消息
错误:从'osg :: Uniform*'转换为请求的非标量类型'std :: unique_ptr'
知道发生了什么事吗?对智能指针有一些要求吗?
class BaseShader {
std::unique_ptr<HandleInterface> handle_;
public:
BaseShader();
BaseShader(std::unique_ptr<HandleInterface> handle_ptr);
Run Code Online (Sandbox Code Playgroud)
的.cpp
BaseShader::BaseShader(std::unique_ptr<HandleInterface> handle_ptr) {
handle_.reset(handle_ptr.get());
}
//BaseHandle implements HandleInterface
BaseShader::BaseShader():BaseShader(std::make_shared<BaseHandle>()) {
}
Run Code Online (Sandbox Code Playgroud)
我如何handle_正确初始化unique_ptr ?
我想像这样使用它 BaseShader s(std::make_shared<BaseHandle>());
克朗告诉我
error: no matching constructor for initialization of 'BaseShader'
BaseShader::BaseShader():BaseShader(std::make_shared<BaseHandle>()) {
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
我可能搞砸了.
1.)我的构造函数参数是否正确? BaseShader::BaseShader(std::unique_ptr<HandleInterface> handle_ptr)
2.)如果1.)为true是handle_.reset(handle_ptr.get());正确的初始化handle_ unique_ptr的方法吗?
我不是很精通C,但我有Java,C#,Python,Rust等经验.我目前正在尝试在Rust中包装fd_set,但我完全不知道如何阅读这段代码.
我只对这部分感兴趣:
typedef struct
{
/* XPG4.2 requires this member name. Otherwise avoid the name
from the global namespace. */
#ifdef __USE_XOPEN
__fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else
__fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
} fd_set;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我明白这__fd_mask只是一个长期的int.__NFDBITS只是给我一个long int的大小并将它乘以8.
但我不知道这是做什么的#define FD_SETSIZE __FD_SETSIZE,因为我不知道这是做什么_fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];对我来说FD_SETSIZE没有任何价值.我完全不知道# define __FDS_BITS(set) ((set)->__fds_bits)在做什么.
我真的很想看看这个代码在java或c#等中的样子
完整的头文件:
/* `fd_set' type and related macros, and `select'/`pselect' declarations.
Copyright (C) 1996-2003, 2009, …Run Code Online (Sandbox Code Playgroud) 我有一个叫做的类型Vec2F,我可以像这样使用它Vec2F 0.0 0.0.但我想制作自己的类型
type Direction = Vec2F
但后来我做不到Direction 0.0 0.0,我必须定义一个有点麻烦的新功能.
direction :: Float -> Float -> Vec2F
direction = Vec2F
我有什么替代品?
我正在使用OpenTK及其数学库,但不幸的是,矢量类没有通用接口.例如,Vector2,3和4都具有相同的静态方法SizeInBytes http://www.opentk.com/files/doc/struct_open_t_k_1_1_vector3.html#ae7cbee02af524095ee72226d842c6892
现在我可以重载大量不同的构造函数,但我认为应该可以通过类型约束来解决这个问题.
我正在阅读http://msdn.microsoft.com/en-us/library/dd233203.aspx,我发现了这个
type Class4<'T when 'T : (static member staticMethod1 : unit -> 'T) > =
class end
Run Code Online (Sandbox Code Playgroud)
现在我自己尝试了但是我无法正确使用语法.
type Foo<'T when 'T: (static member SizeInBytes: unit -> int)>(data: 'T []) =
member this.GetBytes() = 'T.SizeInBytes()
let f = Foo([|new Vector3(1.0f,1.0f,1.0f)|])
f.GetBytes()
Run Code Online (Sandbox Code Playgroud)
你能发现问题吗?
编辑:VS2012抱怨这条线'T.SizeInBytes() //Unexpected symbol or expression,T.SizeInBytes()也不起作用.
EDIT2:
我做了一个不涉及外部库的例子
type Bar() =
static member Print() = printf "Hello Foo"
type Foo<'T when 'T: (static member Print: unit -> unit)>(data: 'T …Run Code Online (Sandbox Code Playgroud)