我需要Ruby中的数据结构,它可以在添加或删除元素时对其元素进行排序,并允许(至少)从列表中弹出第一个元素.
我在ruby文档中找到的最接近的东西是SortedSet.但是,这似乎没有提供任何方式来通过索引访问元素(甚至关闭第一个元素)
这些是我需要的具体操作:
ruby有没有内置的东西,或者是否有任何我能抓到的图书馆可以给我?我可以毫不费力地实现一个,但如果可能的话,我宁愿使用预先存在的一个.
目前我正在使用Ruby 1.8,虽然切换到1.9可能没问题.
编辑:
由于似乎存在一些混淆,我需要的排序不是插入对象的顺序.我需要根据<=>运营商进行排序.通常我会弹出第一个元素,处理它(可能生成新元素),向列表中添加新元素,然后重复.添加的元素最终可能会在排序顺序中的任何位置结束,而不仅仅是在最后.
我有一个用Flex 3(MXML和一些AS3)编写的简单的小测试应用程序.我可以把它编译成SWF就好了,但是我想把它变成一个EXE,所以我可以把它交给我的几个可能觉得有用的同事.
使用Flash 8,我可以只针对EXE而不是SWF,它可以将SWF包装在投影仪中,一切正常.是否有相当于使用Flex 3 SDK的最终不需要AIR?
注意:我没有Flex Builder,我只是使用免费的Flex 3 SDK.
我有一个通过JNI使用C++ DLL的Java应用程序.一些DLL的方法接受字符串参数,其中一些返回包含字符串的对象.
目前DLL不支持Unicode,因此字符串处理相当容易:
我现在正在修改DLL以支持Unicode,切换到使用TCHAR类型(当定义UNICODE时使用Windows的WCHAR数据类型).修改DLL进展顺利,但我不知道如何修改代码的JNI部分.
我现在唯一能想到的是:
这种方法的唯一问题是我不确定要使用什么字符集名称.WCHAR是2个字节长,所以我很确定它是UTF-16,但是在java方面有3个可能性.UTF-16,UTF-16BE和UTF-16LE.我没有找到任何文档告诉我字节顺序是什么,但我可以从一些快速测试中找出它.
有没有更好的办法?如果可能的话,我想继续在DLL中构造jstring对象,因为这样我就不必修改那些方法的任何用法.但是,NewString JNI方法不采用字符集标识符.
我正在尝试编写一些简单的AutoHotkey脚本来移动窗口,我无法获得正确的屏幕尺寸值.
我试图获得屏幕上可用区域的大小(通常是全屏分辨率减去任务栏,也可能是任何其他停靠窗口,如Vista中的侧边栏).我找到的用于获得屏幕宽度的方法似乎都不起作用.
我发现获得屏幕尺寸的3种方法都没有给我正确的值.这是我正在使用的测试脚本(在XP上运行,底部的任务栏为默认大小):
#7::
WinMove A,,0,0,A_ScreenWidth,A_ScreenHeight
return
#8::
;SM_CXMAXIMIZED and SM_CYMAXIMIZED
SysGet, ScreenWidth, 61
SysGet, ScreenHeight, 62
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
#9::
;SM_CXFULLSCREEN and SM_CYFULLSCREEN
SysGet, ScreenWidth, 16
SysGet, ScreenHeight, 17
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
Run Code Online (Sandbox Code Playgroud)
#7使窗口占据整个分辨率,因此它与任务栏重叠.
#8导致宽度大于分辨率(我看到窗口的右边缘显示在我的辅助监视器上)并且高度稍微过大,因此窗口部分重叠任务栏区域.看起来这是正确的,除了没有考虑边缘的窗户装饰.
#9似乎有正确的宽度,但高度太短.看起来它正在从分辨率的高度减去任务栏的高度,但是从它减去另外30个像素.
我可以使用我在#9中的内容并将其添加到我所获得的高度30,但这感觉太像在其他配置中会破坏的黑客.似乎必须有一种方法来正确获得可用的屏幕尺寸,但我无法在AutoHotkey中找到它.
作为参考,这似乎给了我在Java中需要的东西:
Toolkit.getDefaultToolkit().getScreenSize();
Run Code Online (Sandbox Code Playgroud) 我正试图在我的ruby应用程序中获得简单的选项处理.看起来像OptionParser我想要的大部分,虽然我无法找到一种方法来优雅地处理意外的参数.
如果提供了任何意外的参数,我想将其视为-h传递参数(show usage and quit).我没有看到任何方法来处理这个问题.
如果OptionParser不能这样做,是否有另一个我可以用来轻松解析命令行参数的库?
我正在开发一个工具,它将生成一个接口的源代码和几个实现该接口的类.我的输出并不是特别复杂,因此输出符合我们正常的代码格式标准并不难.
但这让我想到:自动生成的代码需要多么可读?什么时候应该花费额外的努力来确保生成的代码很容易被人类阅读和理解?
在我的例子中,我生成的类本质上只是与构建的另一部分相关的一些数据的容器,其中包含获取数据的方法.没有人需要查看类本身的代码,他们只需要调用类提供的各种getter.因此,如果代码"干净",格式良好且易于人类阅读,则可能并不太重要.
但是,如果您生成的代码中包含少量简单逻辑,会发生什么?
有没有办法向FlexBuilder的构建路径添加相对的条目?
我将有多个项目将使用共享代码库,但我无法让他们引用共享代码.我可以用绝对路径来做,但这不会很好.这段代码(和项目)进入源代码控制,我团队中的其他人可能没有像我一样在硬盘上的同一个地方存储库.因此,虽然定义的路径可能在我的机器上运行,但它不会在其他开发人员的机器上运行.
FlexBuilder的UI不允许我输入相对路径.我尝试手动修改.project和.actionScriptProperties文件以添加相对路径,但项目无法打开.
我正在尝试调试一个似乎只在IE 7和8中出现的问题,并且调试器的控制台完全没用.
每当我输入一个导致对象的表达式时,它只会将"{...}"打印到控制台.我需要检查返回的对象,但它没有给我提供简单的方法.
有没有办法让这个更像Chrome的调试工具或Firebug,这两个让我实际检查对象?
我有一个针对Flash 7的大型代码库,包含很多 AS2类.我希望我能够将Flex用于任何新项目,但我们路线图中的许多新内容都是对旧代码的补充.
AS2和AS3的语法通常是相同的,所以我开始想知道将当前代码库移植到Flex/AS3有多难.我知道所有与UI相关的东西都是iffy(目前UI是在运行时生成的,有很多createEmptyMovieClip()和attachMovie()东西),但是UI和控制器/模型的东西大多是分开的.
有没有人尝试将AS2代码的大型代码库移植到AS3?这有多难?你遇到了什么样的陷阱?有关进行此类项目的方法的任何建议吗?
apache-flex ×3
flash ×2
ruby ×2
autohotkey ×1
debugging ×1
flex3 ×1
flexbuilder ×1
grep ×1
java ×1
javascript ×1
porting ×1
powershell ×1
readability ×1
sortedlist ×1
unicode ×1
visual-c++ ×1
windows ×1
xargs ×1