给定以下无序列表,JQuery选择器$("#root #2")选择:
/ul/li/ul[@id='root']/li/ul[@id='1']/li/ul[@id='2']
Run Code Online (Sandbox Code Playgroud)
而我本以为它会选择较短的路径:
/ul/li/ul[@id='root']/li/ul[@id='2']
Run Code Online (Sandbox Code Playgroud)
任何想法?
<ul>
<li>root
<ul id="root">
<li>1
<ul id="1">
<li>2
<ul id="2"> <!--*selecting this*-->
<li>3<ul id="3"></ul></li>
<li>4<ul id="4"></ul></li>
</ul>
</li>
<li>3<ul id="3"></ul></li>
</ul>
<li>2
<ul id="2"> <!-- *expecting this* -->
<li>3
<ul id="3">
<li>4<ul id="4"></ul></li>
</ul>
</li>
</ul>
</li>
<li>3<ul id="3"></ul></li>
<li>4<ul id="4"></ul></li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我在Java中的冒险经历让我看到Clojure,然后引导我(重新)发现Emacs并引导我进入SLIME.
我对Emacs本身有一个相当不错的处理,我有emacs-starter-kit以及clojure-mode/slime/swank以及一些其他不相关的模式和调整设置和运行.
但是建立一个程序并理解它的功能并不相同.所以现在在我回到Clojure实验之前,我想先了解一下Slime IDE本身以及它能做些什么.
任何人都可以推荐一个教程/截屏,它会教我一些基本的Slime用法吗?我已经熟悉与Slime以交互方式执行Clojure,但肯定不能成为Slime的唯一功能.
本教程不需要涉及Clojure,但如果确实如此,那将是一个加分,但我感兴趣的主要焦点是Slime,所以请不要发布Clojure教程,除非他们突出显示Slime的用法,而不仅仅是交互式地执行Clojure代码.
我正在开发LOB应用程序,我将需要多个对话框窗口(并且在一个窗口中显示所有内容不是一个选项/没有意义).
我希望我的窗口有一个用户控件来定义一些样式等,并且可以有几个插入内容的插槽 - 例如,模态对话框窗口的模板将有一个内容插槽和按钮(这样用户就可以提供带有绑定ICommands的内容和按钮组.
我想有这样的东西(但这不起作用):
UserControl xaml:
<UserControl x:Class="TkMVVMContainersSample.Services.Common.GUI.DialogControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
>
<DockPanel>
<DockPanel
LastChildFill="False"
HorizontalAlignment="Stretch"
DockPanel.Dock="Bottom">
<ContentPresenter ContentSource="{Binding Buttons}"/>
</DockPanel>
<Border
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Padding="8"
>
<ContentPresenter ContentSource="{Binding Controls}"/>
</Border>
</DockPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?我怎么告诉VS我的控件暴露了两个内容占位符,以便我可以像这样使用它?
<Window ... DataContext="MyViewModel">
<gui:DialogControl>
<gui:DialogControl.Controls>
<!-- My dialog content - grid with textboxes etc...
inherits the Window's DC - DialogControl just passes it through -->
</gui:DialogControl.Controls>
<gui:DialogControl.Buttons>
<!-- My dialog's buttons with wiring, like
<Button Command="{Binding HelpCommand}">Help</Button>
<Button Command="{Binding CancelCommand}">Cancel</Button>
<Button …Run Code Online (Sandbox Code Playgroud) 今天我编写了一些C代码来使用带有自定义比较器功能的快速排序对结构数组进行排序,以确定它们的排序.
起初我用调用比特函数编写它,硬编码到quicksort函数中.然后我想也许将该函数作为参数传递给通用的快速排序函数会更好.
在我的原始代码中,我已经声明了比较器功能inline.在我的新代码中,我保留了inline声明,即使这对我来说没有多大意义,因为函数是作为参数传递的.但是,编译器没有抱怨!
我的问题是:inline声明在这里有任何影响,还是只是对编译器的建议被忽略了?
原始代码:
typedef struct _CGRect {
CGPoint origin;
CGSize size;
} CGRect;
typedef enum _NSComparisonResult {
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
} NSComparisonResult;
static inline NSComparisonResult CGRectCompareRowsFirst(CGRect r1, CGRect r2)
{
if (r1.origin.y < r2.origin.y)
return NSOrderedAscending;
else if (r1.origin.y > r2.origin.y)
return NSOrderedDescending;
else
{
if (r1.origin.x < r2.origin.x)
return NSOrderedAscending;
else if (r1.origin.x > r2.origin.x)
return NSOrderedDescending;
else
return NSOrderedSame;
}
}
static void CGRectQuicksortRowsFirst(CGRect *left, CGRect *right)
{ …Run Code Online (Sandbox Code Playgroud) 我对MVC很新,最近我找到了CodeIgniter.我每天都在学习,但一个问题是它的模板引擎.在CodeIgniter中创建模板的最佳方法是什么?
CakePHP带有自己的模板库,CodeIgniter中是否有类似的功能?
谁知道如何用Mako格式化字符串的长度?
相当于打印"%20s%10s"%("字符串1","字符串2")?
145M = .git/objects/pack /
我编写了一个脚本来添加每个提交和提交的差异大小,然后再从每个分支的尖端向后移动.我得到129MB,没有压缩,没有分支机构的相同文件和分支机构之间的共同历史记录.
Git考虑了所有这些因素,所以我期望更小的存储库.那么为什么.git这么大?
我弄完了:
git fsck --full
git gc --prune=today --aggressive
git repack
Run Code Online (Sandbox Code Playgroud)
要回答有多少文件/提交,我有19个分支,每个文件大约有40个文件.287次提交,发现使用:
git log --oneline --all|wc -l
Run Code Online (Sandbox Code Playgroud)
它不应该使用10兆字节来存储有关此信息.
原文问: 我想知道是否有人有过将大型Cobol/PL1代码库迁移到Java的经验?
该过程的自动化程度以及输出的可维护性如何?
从交易到OO的转变如何发挥作用?
任何经验教训或可能有益的资源/白皮书都将受到赞赏.
编辑7/7:当然NACA方法很有意思,能够继续对COBOL代码进行BAU更改,直到发布JAVA版本,这对任何组织都有好处.
与COBOL布局相同的过程Java的参数,使编码人员在熟悉Java语言时感到舒适,这对于具有大量代码库的大型组织来说是一个有效的论据.正如@Didier所指出的那样,每年节省300万美元可以在任何BAU变化中提供大量填充的空间,以便持续重构代码.正如他所说,如果你关心你的人,你会找到一种让他们快乐的方法,同时逐渐挑战他们.
我从@duffymo的建议中看出这个问题
最好尝试并从根本上真正理解问题,并将其重新表达为面向对象的系统
如果您正在进行任何BAU更改,那么在编写新OO系统的LONG项目生命周期中,您最终会编码并测试双倍的更改.这是NACA方法的主要好处.我有一些将Client-Server应用程序迁移到Web实现的经验,这是我们遇到的主要问题之一,由于BAU更改而不断变换需求.它使PM和日程安排成为一项真正的挑战.
感谢@hhafez,他的经验很好地被认为是"相似但略有不同",并且从Ada到Java的自动代码迁移有着相当令人满意的体验.
感谢@Didier的贡献,我还在研究你的方法,如果我有任何Q,我会告诉你一句话.
我知道这是一个微观优化,所以我问出纯粹的好奇心.
逻辑上,微处理器不需要比较相等运算符的两个操作数的所有位以确定"FALSE"结果.
注意,这与编程有关,因为它会影响程序的执行速度.