在"IronPython in Action"一书中,作者指出,与CPython不同,IronPython受益于CPython无法利用的JIT和框架本身的某些优化.因此,IronPython可能比CPython更快,特别是对于多线程场景.
IronScheme是否会受益于此类优化?它是一个解释器(不是编译器),它是一个解释器,因为这是Lisp的本质,它必须被解释为提供类似Lisp的灵活性?如果它是一个解释器,它仍然可以从抖动优化中受益吗?
好的,这有点奇怪.忽略我想要做的事情,并查看在这种情况下发生的结果.
代码:
static string rawNumbers="1,4,6,20,21,22,30,34";
static IEnumerable<int> numbers = null;
static void Main(string[] args)
{
numbers = rawNumbers.Split(',').Cast<int>();
for (int i = 0; i < numbers.Count(); i++)
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
情况:
该行numbers = rawNumbers.Split(',').Cast<int>(); 似乎有效,并且不会抛出任何异常.但是,当我遍历集合时,抛出InvalidCastException.
现在,深入了解源代码并查看CastIterator<TResult>.这似乎是for (int i = 0; i < numbers.Count(); i++)专门用来调用的numbers.Count()
static IEnumerable<TResult> CastIterator<TResult>(IEnumerable source) {
foreach (object obj in source) yield return (TResult)obj;
}
Run Code Online (Sandbox Code Playgroud)
错误发生在演员表上,当我查看source变量中的数据时,它是一个字符串[].
我会想到,因为我调用强制转换为成功执行int的行所以一切都很好.幕后发生了什么?字符串数组真的只是存储在某个地方,并且在被调用之前没有被转换为T吗?懒惰的铸造也许?
我知道我不能这样做:(int)"42".我的问题不是如何使演员工作,而是发生了什么.演员的延期执行?看起来很奇怪,我呼唤的线Cast<int>()似乎工作,但实际上并没有.
当我在控制台中点击TAB时,我看到了parseInt()和parseFloat().
我可以输入:
parseInt('123asd');
Run Code Online (Sandbox Code Playgroud)
但这些位于哪里?
首先,抱歉,如果这太主观,我只是不知道如何/在哪里问.
无论如何,根据我最近的所有问题,我正准备尽快发布Android应用程序,大部分测试都是在我的手机Droid上完成的.我真的没有钱在"多个"设备上进行测试,我也不知道有任何人使用旧手机,我可以寻求帮助,可能会遇到任何类型的错误.更何况,当我收到错误报告时,我将如何为该特定手机修复它而无需购买它以确保它实际上得到修复,或者该人没有发现一次性奇特的事故小故障?
你们是如何解决这些问题的呢?
当我按下Droid上的睡眠按钮时,我的活动的oncreate被调用.为什么会这样?操作系统为什么要在设备进入睡眠状态时调用OnCreate?有没有办法阻止它,或者至少知道它是因为手机已经入睡?
我正在从C#.NET应用程序插入Oracle数据库.失败的查询看起来像:
INSERT INTO staging (create_date) VALUES ('16-Nov-1999')
Run Code Online (Sandbox Code Playgroud)
当我从SQL Navigator运行它时,运行正常.通过.NET,数据库抛出:
ORA-01858: a non-numeric character was found where a numeric was expected
Run Code Online (Sandbox Code Playgroud)
我运行了一些测试用例并确认是导致异常的一年.'31 -Dec-1999'之后的任何事情都运行良好.
在我的JSF 1.2 webapp中,我有一个页面,<h:commandButton>它在一个辅助bean上调用一个action方法.此操作将导致数据库中的数据被删除/替换,因此我希望避免用户意外单击命令按钮的任何情况.
我想实现一个简单的"你确定吗?" 使用JavaScript提示"是/否"或"确定/取消"选项.我对JavaScript并不擅长,之前我从未将JavaScript与JSF混合在一起.任何人都可以提供代码片段来向我展示如何实现这一点吗?
这是我的JSP页面的一部分,我在其中声明了命令按钮:
<h:commandButton
id="commandButtonAcceptDraft"
title="#{bundle.tooltipAcceptDraft}"
action="#{controller.actionReplaceCurrentReportWithDraft}"
image="/images/checkmark.gif">
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
解:
BalusC提供的解决方案运作得很好.我还想提一下,使用资源包中的文本作为提示文本很容易.在我的页面上,我使用如下元素加载资源包:
<f:loadBundle basename="com.jimtough.resource.LocalizationResources" var="bundle" />
Run Code Online (Sandbox Code Playgroud)
的<f:loadBundle>一定是你里面<f:view>.然后我将BalusC提供的代码添加到我的命令按钮元素中,但用我的资源包中的字符串替换'你确定吗?' 文字,像这样:
<h:commandButton
id="commandButtonAcceptDraft"
title="#{bundle.tooltipAcceptDraft}"
action="#{controller.actionReplaceCurrentReportWithDraft}"
image="/images/checkmark.gif"
onclick="return confirm('#{bundle.confirmationTextAcceptDraft}')">
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
我的英文资源文件中的行(只是一个带键/值对的纯文本文件)如下所示:
# text displayed in user prompt when calling confirm()
confirmationTextAcceptDraft=This will overwrite the current report and cannot be undone. Are you sure?
Run Code Online (Sandbox Code Playgroud) 我需要将我的Solr索引复制到另一个项目的PosgreSQL中.有没有一种简单的方法可以将索引转储到纯文本文件(如pg_dump)或迭代每个主键,以便我可以逐个下载它们?
对于我的Web应用程序,我在JavaScript中创建一个名称空间,如下所示:
var com = {example: {}};
com.example.func1 = function(args) { ... }
com.example.func2 = function(args) { ... }
com.example.func3 = function(args) { ... }
Run Code Online (Sandbox Code Playgroud)
我也想创建"私有"(我知道这在JS中不存在)命名空间变量,但我不确定什么是最好的设计模式.
可不可能是:
com.example._var1 = null;
Run Code Online (Sandbox Code Playgroud)
或者设计模式是否是别的?
我正在尝试在Microsoft MVC中编写一个动态控件,它允许我在网格中编辑实体(特别是使用jqgrid).好吧,我根据我想要修改的实体在我的控制器中构建我的列和colmodel.我想有一种方法将列标记为隐藏列,但我不想创建任意属性,如果已经存在标准属性.所以我正在查看System.ComponentModel.DataAnnotations,其中有很多好东西,但不是我正在寻找的东西.这样的属性是否存在?谢谢!
javascript ×3
.net ×2
android ×2
c# ×2
attributes ×1
casting ×1
ironscheme ×1
java ×1
jsf ×1
linq ×1
lucene ×1
myfaces ×1
namespaces ×1
oledb ×1
optimization ×1
ora-01858 ×1
oracle ×1
scheme ×1
solr ×1
sql ×1