我试图使用javascript来爆炸一个字符串来选择searchterms,空格分隔.但是,如果searchterm由空格结束,我会得到空数组元素,如下所示.
我应该怎么做以避免后处理这个数组并删除空元素?
var str = "searchterm1 searchterm2";
console.log(str.split(" ")); // ["searchterm1", "searchterm2"]
var strb = "searchterm1 "; // Note the ending whitespace
console.log(strb.split(" ")); // ["searchterm1", ""]
Run Code Online (Sandbox Code Playgroud) 什么是转换decimal[]为有效且有希望优雅的咒语double[]?我正在使用一些相当大的数组.
我有一个由两个文件组成的小动作"项目",称为foo.as和bar.as. 由于我不打算进入的原因,我真的很想从命令行构建.SWF,而不需要设置任何类型的正式项目.我曾经使用的每一个编译器都允许你这样做,但是对于我的生活,我无法弄清楚如何强制MXMLC编译这两个文件并将它们链接到SWF.
天真的,我试试
MXMLC foo.as bar.as
但我被告知只允许一个源文件.
好吧,假设我分别编译了这两个文件,我将如何将它们链接在一起以获得最终的SWF?
注意:我有两个文件而不是一个文件的唯一原因是每个文件只需要一个类.我尝试将两个类放在一个文件中,然后创建其中一个类private,internal但这些想法都不起作用.我会欣喜地发现我可以在一个文件中放置多个类(只有一个是公共的).
以下代码将始终抛出UnuthorizedAccessException(无法访问MemoryStream的内部缓冲区.)
byte[] buf1 = { 2, 3, 5, 7, 11 };
var ms = new MemoryStream(buf1);
byte[] buf2 = ms.GetBuffer(); // exception will be thrown here
Run Code Online (Sandbox Code Playgroud)
这是一个普通的旧控制台应用程序,我作为管理员运行.我无法想象我可以给出这个代码更具特权的设置.那么为什么我不能进入这个缓冲区呢?(如果没有人可以,GetBuffer方法有什么意义?)
MSDN文档说
要使用公共可见缓冲区创建MemoryStream实例,请使用MemoryStream,MemoryStream(array [],Int32,Int32,Boolean,Boolean)或MemoryStream(Int32).
我不这样做吗?
PS我不想使用ToArray(),因为它会复制.
我花了很多时间熟悉.NET Stream类.通常我通过研究专业的,商业级的框架的类设计来学到很多东西,但我不得不说这里的东西不太好闻.
System.IO.Stream是一个表示字节序列的抽象类.它有10个抽象方法/属性:Read, Write, Flush, Length, SetLength, Seek, Position, CanRead, CanWrite, CanSeek.如此多的抽象成员使得派生起来很麻烦,因为你必须覆盖所有这些方法,即使大多数最终只是抛出NotImplemented.
Stream类的用户希望能够打电话CanRead,CanWrite或CanSeek找出了数据流的能力,或者我想先走一步,打电话Read,Write或者Seek看它是否抛出NotImplemented.它只是我,还是这个糟糕的设计?
虽然现在有很多尼特我想用挑Stream一流的设计,主要的一个,我想请教一下的是:他们为什么不使用界面,比如IReadable,IWriteable,ISeekable,而不是?然后,新的Stream类可以从它支持的接口中优雅地派生.这不是面向对象的做事方式吗?或者我错过了什么?
更新:有人指出,值CanRead 等可以在运行时更改 - 例如,如果a FileStream关闭 - 并且采取了这一点.但是,我仍然不相信这是一个很好的设计.从我来自哪里,尝试从已经关闭的文件中读取是一个错误,或者至少是一个特殊情况.(因此抛出异常是处理这种情况的一种自然方式.)
这是否意味着每次我要Read离开时Stream,我应该检查一下CanRead?并且这是否意味着我应该设置一个锁以避免竞争条件,如果值可能在CanRead呼叫和Read呼叫之间的某个时间发生变化?
2010年8月7日更新:这里的共识似乎是Stream设计非常好.但是让我再一次要求100%肯定:人们每次从流中读取内容时都会写这样的东西?
// s is a Stream
lock(s)
{
if (s.CanRead)
{
s.Read(buf, 0, buf.Length);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试设法java字节码.
我想识别java循环的进入和退出,但我发现循环的识别非常具有挑战性.我花了几个小时看ASM和开源反编译器(我认为他们必须一直解决这个问题)但是,我做得很短.
我正在扩充/扩展的工具是使用ASM,所以理想情况下我想知道如何通过ASM来检测java中不同循环结构的进入和退出.但是,我也欢迎建议一个好的开源解编译器,因为显然它们可以解决同样的问题.
问题:了解以下时间戳
1241036430
Run Code Online (Sandbox Code Playgroud)
在〜/ .history
: 1241036336:0;vim ~/.zshrc
: 1241036379:0;vim ~/bin/HideTopBar
: 1241036421:0;ls
: 1241036430:0;cat ~/.history
Run Code Online (Sandbox Code Playgroud)
当我有
setopt EXTENDED_HISTORY
HISTFILE=~/.history
Run Code Online (Sandbox Code Playgroud)
在.zshrc中.
你怎么看时间戳?
我有一个WinForms应用程序,在.net 3.5上运行.此应用程序动态生成HTML,其中包括完整的文档,以及内联CSS样式表(在head元素内).
我正在使用WebBrowser控件并将browser.DocumentText设置为我生成的HTML,但这似乎没有在body元素上正确应用样式(我在CSS中将background-color设置为#000000,但背景仍为白色).
我想知道是否a)有一些替代方法可以在C#中呈现相对简单的HTML(即完全托管的HTML呈现器)或b)使用WebBrowser控件呈现HTML的最佳方式,包括正确处理inline-css和不使用使用硬盘上的临时文件.
编辑: CSS-not-applied问题是一个单独的问题.我把我的实际CSS放在CDATA块中,这似乎导致它无法正确应用.现在已经确定了,但问题本身仍然存在.
我正在使用history.js来处理后退按钮.在history.js中,只要我执行pushstate,statechange就会触发.为什么?