在C++中,可以很容易地写出以下内容:
#ifdef FAST
typedef Real float;
#endif
#ifdef SLOW
typedef Real double;
#endif
#ifdef SLOWER
typedef Real quad;
#endif
Run Code Online (Sandbox Code Playgroud)
在一些常见的头文件中,所以我可以简单地编写一个版本的代码和#define相应的版本来获得不同的二进制文件.
我知道在C#中你可以做类似的事情:
using Real = double;
Run Code Online (Sandbox Code Playgroud)
这样你就可以获得类似于typedef的语义.但有可能做一些类似于上面的C++代码,我不必在每个文件中写入?
在sql server中,我有一个表,其中包含作业发布的开始和结束日期.在给定用户一个月和一年的情况下,我需要找到该发布的给定年/月的开始日期和结束日期之间的天数.
因此,如果发布开始日期是2010/11/15,结束日期是2010/12/05那么输出应该是:
November 16 days
December 5 days
Total 21 days
Run Code Online (Sandbox Code Playgroud)
我一直用这个打我的头靠在墙上,而且我的想法很新鲜.
更新:旧问题......它是由2011年2月的data.table v1.5.3解决的.
我试图用data.table包,真的很喜欢加速比我得到的,但我对这个错误难倒当我x[y, <expr>]在那里x和y是"数据表"使用相同的密钥,并且<expr>同时包含的列名x和y:
require(data.table)
x <- data.table( foo = 1:5, a = 5:1 )
y <- data.table( foo = 1:5, boo = 10:14)
setkey(x, foo)
setkey(y, foo)
> x[y, foo*boo]
Error in eval(expr, envir, enclos) : object 'boo' not found
Run Code Online (Sandbox Code Playgroud)
更新...为了阐明我在上面的例子中寻找的功能:我需要做相当于以下的事情:
with(merge(x,y), foo*boo)
Run Code Online (Sandbox Code Playgroud)
但是根据data.table常见问题解答中的以下摘录,这应该有效:
最后,虽然看起来好像x [y]不返回y中的列,但实际上可以使用j表达式中y的列.这就是我们所说的连接继承范围.为什么不直接从x和y返回所有列的并集,然后在其上运行表达式?它归结为代码的效率和更快的编程.当您编写x [y,foo boo]时,data.table会自动检查j表达式以查看它使用的列.它只会对这些列进行子集或分组.仅为j使用的列创建内存.假设foo在x中,而boo在y中(与y中的20个其他列一起).是不是x [y,foo boo]比合并步骤更快的编程和更快的运行,然后是另一个子集步骤?
我知道这个问题解决了类似问题,但似乎没有得到令人满意的解决.有人知道我错过了什么或误解了吗?谢谢.
更新:我问的数据表帮助邮件列表和包的作者(马修Dowle)上说,确实上面引述的常见问题是错误的,所以我使用的语法不会与目前的工作,即我不能指y列在j(即第二次)我的论点x[y,...].
我正在构建一个iPhone应用程序,我希望包含允许用户登录到Twitter并发布指向我的应用程序的链接的功能.但是,为了做到这一点,推文需要缩短我在App Store上的应用程序的URL.如何编写代码来缩短推文的URL?
我已经对此进行了搜索并找到了关于iCodeBlog的教程,以及在SO上发布的一些问题,但是,它们都比我认为需要的更多工作或者他们正在使用http://api.tr .im,已不再可用.我希望有一个更新的方法,就像iCodeBlog解决方案一样简单.
谢谢你的智慧!
下载时是否可以包含随扩展名打包的 DB 文件。我正在尝试包含一个带有邮政编码的小型数据库,因此扩展程序不必请求查找正确的邮政编码。
可能吗?
我想知道是否有人知道在python谷歌应用引擎上生成GUID的好方法.我觉得人们使用的方式很简单,你会建议什么.
在 SQL Server Management Studio 2008 中,我可以运行
sp_columns MY_TABLE
Run Code Online (Sandbox Code Playgroud)
获取所有列名(在 下COLUMN_NAME)。但是,如何使用 Perl DBI 获取相同的信息?
特别是,我试过
my $result = $dbh->selectall_hashref("sp_columns MY_TABLE", 'COLUMN_NAME');
Run Code Online (Sandbox Code Playgroud)
希望列名是返回散列的键。
事实上,即使那是成功的,这也不是我想要的,因为我需要保留该表中列的顺序。所以我试过了
my $sth = $dbh->prepare("sp_columns $table");
$sth->execute();
while (my @row = $sth->fetchrow_array) {
# process @row;
}
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用。我收到错误消息
DBD::Sybase::db selectall_hashref failed: Server message number=102 severity=15 state=1 line=1 server=XXXX text=Incorrect syntax near '.'
Run Code Online (Sandbox Code Playgroud)
我也参考了这篇文章。显然,下面的查询也不要在我Management Studio中的工作:
select * from information_schema.columns where table_name = MY_TABLE
Run Code Online (Sandbox Code Playgroud)
错误信息为
Msg 208, Level 16, State 1, Line 2
Invalid …Run Code Online (Sandbox Code Playgroud) toString()方法将输出[object HTMLImageElement].我想要一个图像元素的字符串表示'<img src="..." />'.outerHTML在firefox中返回undefined.
我怎么能做到这一点?
我正在尝试为稳定的iPhone应用程序设置持续构建/集成.
我有:
最大的问题是代码签名和钥匙串.
我们代表客户的开发者身份创建代码,因此我们有几个开发人员身份,我们将添加更多.
我想将Mini放在一个黑暗的房间里,从不看它,但是第一次使用开发者身份构建时,会弹出一个GUI对话框,询问您是否要始终允许codesign访问开发者身份.
假设您这样做,该对话框修改了钥匙串访问控制列表(ACL),以便允许使用代码签名.
您可以通过打开Keychain Access,扩展证书,选择私钥,右键单击,选择"获取信息",然后切换到"访问控制"选项卡来查看此信息."处女"密钥只在其"始终允许"应用程序列表中具有Keychain Access.您在对话框中使用和确认的一个也将具有编码.
这个框提供了一种添加应用程序的方法,除了你得到标准的Finder文件选择器,它隐藏了Unix文件夹.没有办法导航到/ usr/bin/codesign.所以手动添加是不可能的!
有没有人知道这方面的方法?
我知道有一种方法使用"安全导入"的-T开关,但是当你首先导入密钥时必须指定ACL,因此在Keychain GUI中添加的任何键都必须被抛出并重新导入.不是很好.
这是LogCat所说的:
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): java.lang.NoSuchMethodError: com.mohit.geo2do.activities.TasksList.showDialog
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.mohit.geo2do.activities.TasksList.onContextItemSelected(TasksList.java:190)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.app.Activity.onMenuItemSelected(Activity.java:2183)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2785)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:140)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:129)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:898)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.widget.ListView.performItemClick(ListView.java:3626)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3600)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.os.Handler.handleCallback(Handler.java:587)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.os.Handler.dispatchMessage(Handler.java:92)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.os.Looper.loop(Looper.java:123)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at android.app.ActivityThread.main(ActivityThread.java:4363)
01-21 17:20:06.057: ERROR/AndroidRuntime(27463): at …Run Code Online (Sandbox Code Playgroud)