这可能是一个小小的问题,我最近一直试图在ruby上做得更好,并开始阅读精彩的The Ruby Programming Language.提到的是字符串文字被认为是可变的,因此在循环中最好使用变量然后使用文字,因为新字符串将在每次迭代时实例化.
我的问题是为什么?起初我认为这是因为插值,但符号是不可变的,它们支持插值.来自静态背景,对我来说并没有多大意义.
编辑:
看完后thenduks答案,我想我可能有它.AFAIK,Java或C#等语言没有破坏性的字符串方法(它们使用upcase,但不是upcase!).因为像upcase这样的东西!或<<,文字不能是不可改变的.
不是100%肯定,另一种可能性是它发生了编译时实习,这在脚本语言中是不会发生的.
我在vim度过了我的日子,目前正在编写大量的JavaScript.我一直试图找到一种方法将JSLint或类似的东西集成到vim中以改进我的编码.有没有人设法做这样的事情?
编辑:
试过这个:Javascript语法从Vim检查,不幸的是输出很粗糙.
使用Python的Imaging Library我想创建一个PNG文件.
我希望如果在打印此图像时没有任何缩放,它将始终以打印页面上已知且一致的"大小"打印.
分辨率是否在图像中编码?
如果是这样,我该如何指定它?
即使是这样,它在进入打印机时是否有任何相关性?
我的表单上有一个PropertyGrid.我的老板认为这很难看.粗野.性格单纯.
他想要一个漂亮,整洁,干净的形式.这是一个问题:其中一个属性是我们自己种植的物品的集合.他喜欢这个系列的收藏编辑器.
我知道我可以建立自己的收藏编辑器.但有没有一个干净,简单的解决方案来节省我几个小时的编码,这样我可以直接创建和使用Collection编辑器而无需使用属性网格?
我在我的控制器中使用临时数据 - 非常简单,当出现问题时:
TempData("StatusMessage") = "You have no items set to Auto-Ship."
Run Code Online (Sandbox Code Playgroud)
然后在每个页面上我都有一个用户控件,如下所示:
<div class="error-container">
<% If TempData.ContainsKey("ErrorMessage") Then%>
<script> $('div.error-container').show();</script>
<div class="msg-error"><p><%=TempData("ErrorMessage") %></p></div>
<% End If%>
<% If TempData.ContainsKey("StatusMessage") Then%>
<script> $('div.error-container').show();</script>
<div class="msg-status"><p><%=TempData("StatusMessage")%></p></div>
<% End If%>
<ul></ul>
</div>
Run Code Online (Sandbox Code Playgroud)
问题是当我确实在tempdata中添加了一个错误时它在第一个请求中正确显示,但是在下一个请求时也会再次出现 - 这显然非常令人困惑而且不是一个理想的行为.
我没有使用任何IoC,我确实在使用它时看到了相同问题的帖子.
我正在为我正在进行的项目执行CSV导入工具.客户端需要能够在excel中输入数据,将它们导出为CSV并将它们上传到数据库.例如,我有这个CSV记录:
1, John Doe, ACME Comapny (the typo is on purpose)
Run Code Online (Sandbox Code Playgroud)
当然,这些公司被保存在一个单独的表中并与外键相关联,因此我需要在插入之前发现正确的公司ID.我计划通过将数据库中的公司名称与CSV中的公司名称进行比较来实现此目的.如果字符串完全相同,则比较应返回0,并返回一些随着字符串变得更大而变大的值,但是strcmp不会在此处删除它,因为:
"Acme公司"和"Acme Comapny"应该有一个非常小的差异指数,但"Acme公司"和"Cmea Mpnyaco"应该有一个非常大的差异指数或"Acme公司"和"Acme Comp.".即使字符数不同,也应该有一个小的差异索引.此外,"Acme Company"和"Company Acme"应返回0.
因此,如果客户端在输入数据时输入类型,我可以提示他选择他最想插入的名称.
是否有一个已知的算法来做到这一点,或者我们可以发明一个:)?
让我疯狂的信息是ORA-01008 - Not all variables bound.
有没有办法知道我拼错了42个可能的变量名中的哪一个,而不是盯着显示器直到我的眼睛弹出来?
更新:我ADO.NET用来访问数据库.正如@Justin Cave建议的那样,它可能会丢失Oracle异常中的一些信息.但我很肯定参数名称即使在SQL Plus中也不会出现.
在Java Swing应用程序中编写菜单的简单方法是执行以下操作:
JMenu fileMenu = new JMenu("File");
JMenuItem openItem = new JMenuItem("Open...");
openItem.addActionListener(new ActionListener() { /* action listener stuff */ } )
fileMenu.addMenuItem(openItem);
Run Code Online (Sandbox Code Playgroud)
经验丰富的开发人员将认识到可以通过各种机制访问操作 - 菜单,工具栏按钮,甚至系统中的其他工作流程.那个人更有可能写:
Action openAction = new AbstractAction();
openAction.setName("Open...");
openAction.addActionListener(new ActionListener() { /* action listener stuff */ } )
...
JMenuItem openItem = new JMenuItem(openAction);
Run Code Online (Sandbox Code Playgroud)
我的问题是,管理这些Action对象的最佳方法是什么,以便可以跨菜单,工具栏等使用它们?
private static final Action在某些实用程序类中声明所有操作? 我正在开发一个从System.Windows.Controls.ContentControl派生的自定义控件.在控件默认模板(themes\generic.xaml)中,我使用包装实际内容的Border元素.
我的自定义控件是否已经实现了边距和填充(即根据自定义控件上的填充设置缩小边框)或者我是否可以决定自己,应用边距和填充(即设置边距和填充属性)边界元素{TemplateBinding Margin}等
提前致谢!
我终于开始进行单元测试了,我知道我应该这样做一段时间,但我有几个问题:
c# ×2
string ×2
.net ×1
ado.net ×1
algorithm ×1
asp.net-mvc ×1
collections ×1
compare ×1
cpu-word ×1
dpi ×1
java ×1
javascript ×1
lint ×1
margin ×1
messages ×1
oracle ×1
padding ×1
php ×1
propertygrid ×1
python ×1
ruby ×1
similarity ×1
swing ×1
tempdata ×1
unit-testing ×1
vim ×1
wpf ×1