程序设计

专业和发烧友程序员的问答






5
我可以将数组作为参数传递给Java中具有可变参数的方法吗?
我希望能够创建一个像这样的函数: class A { private String extraVar; public String myFormat(String format, Object ... args){ return String.format(format, extraVar, args); } } 这里的问题是,在方法中将其args视为,因此是的单个参数,而我希望将每个in 作为新参数传递。由于也是带有可变参数的方法,因此应该可行。Object[]myFormatString.formatObjectargsString.format 如果这不可能,是否有类似的方法String.format(String format, Object[] args)?在这种情况下,我可以在前面加上extraVar到args使用新的数组,并把它传递给该方法。

9
使用$ str [0]获取字符串的第一个字符
我想获取字符串的第一个字母,并且我注意到它的$str[0]效果很好。我只是不确定这是否是“好的做法”,因为该符号通常用于数组。这个功能似乎没有得到很好的记录,因此我想请大家告诉我在所有方面都可以使用此符号吗? 还是我应该坚持好礼substr($str, 0, 1)? 另外,我注意到花括号($str{0})也适用。那是怎么回事?
275 php  string  substring 

8
相反的Intersect()
相交可用于查找两个集合之间的匹配项,如下所示: // Assign two arrays. int[] array1 = { 1, 2, 3 }; int[] array2 = { 2, 3, 4 }; // Call Intersect extension method. var intersect = array1.Intersect(array2); // Write intersection to screen. foreach (int value in intersect) { Console.WriteLine(value); // Output: 2, 3 } 但是我想要实现的却是相反的,我想列出一个集合中另一个集合中缺少的项目: // Assign …

12
为什么我们使用Base64?
维基百科说 当需要对二进制数据进行编码时,通常需要使用Base64编码方案,该二进制数据需要在旨在处理文本数据的媒体上存储和传输。这是为了确保数据在传输过程中保持不变。 但是,不是因为我们的计算机存储的二进制数据就一直以二进制形式存储/传输数据,而这仅取决于您如何解释它?因此,无论您编码位模式010011010110000101101110为ManASCII或如TWFu为Base64,你最终将存储相同的位模式。 如果最终编码是用零和一表示的,并且每台机器和媒体都可以处理它们,那么将数据表示为ASCII还是Base64有什么关系呢? “旨在处理文本数据的媒体”是什么意思?他们可以处理二进制=>他们可以处理任何东西。 谢谢大家,我想我现在明白了。 当我们发送数据时,我们不能确定数据将以我们期望的格式解释。因此,我们发送双方都可以理解的以某种格式(如Base64)编码的数据。这样,即使发送方和接收方对相同内容的解释不同,但由于它们在编码格式上达成共识,因此不会错误地解释数据。 以Mark Byers为例 如果我要发送 Hello world! 一种方法是像ASCII一样发送 72 101 108 108 111 10 119 111 114 108 100 33 但是字节10在另一端可能无法正确解释为换行符。因此,我们使用ASCII的子集对其进行编码,如下所示 83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61 即使在接收器碰巧对其余字符集有不同的解释的情况下,以相同信息量传输更多数据为代价,这也确保了接收器可以按预期方式解码数据。

30
如何防止Backspace键回退?
在IE上,我可以使用jQuery(非常不标准,但可以正常使用) if ($.browser.msie) $(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;}); 但是,是否可以以在Firefox上运行的方式或以跨浏览器的方式获得奖励呢? 作为记录: $(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); }); 什么也没做。 $(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); }); 解决了问题,但使退格键在页面上不可用,这甚至比原始行为还差。 编辑:我这样做的原因是我不是在创建一个简单的网页而是一个大型应用程序。仅仅因为您在错误的位置按了退格键,就失去了10分钟的工作,这真是令人讨厌。通过防止退格键向后导航,防止错误与烦扰用户的比率应远高于1000/1。 EDIT2:我不是要阻止历史导航,只是出于意外。 EDIT3:@brentonstrines评论(由于此问题如此受欢迎,因此移至此处):这是一个长期的“解决方法”,但是您可以在Chromium错误的背后给予支持以更改Webkit中的此行为

5
C#6.0是否适用于.NET 4.0?
我创建了一个带有C#6.0好东西的示例项目-以零传播和属性初始化为例,设置目标版本.NET 4.0即可。 public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() { return "Mew!"; } } class Program { static void Main(string[] args) { var cat = new Cat {Friend = new Cat()}; Console.WriteLine(cat?.Friend.Mew()); Console.WriteLine(cat?.Friend?.Friend?.Mew() ?? …
275 c#  .net  c#-6.0 

6
如何从Git的文本窗口退出?
我正在使用Windows,并且在提交之前,Git希望我输入文本消息,然后会出现一个新的文本窗口。 我该如何退出? 我正在尝试学习Git。因此,将为您提供一点帮助。
275 git  vim 

1
NodeJS计划支持导入/导出es6(es2015)模块
我一直在互联网上寻找有关此问题的明确答案。 当前,NodeJS仅使用CommonJS语法加载模块,如果您确实要使用标准的ES2015模块语法,则必须事先对其进行转换,或者在运行时使用外部模块加载器。 目前,我不太愿意使用这两种方法,NodeJS维护人员是否计划支持ES2015模块?我完全没有发现任何提示。 目前,NodeJS 6.x声称支持96%的ES2015功能,但没有任何模块参考(NodeJS ES2105支持链接)。 您是否知道在不久的将来NodeJS是否会立即支持这些模块?

30
还有其他人发现命名类和方法是编程中最困难的部分之一吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 因此,我正在研究该类,该类应通过Web服务向供应商索取帮助文档。我试着将它命名DocumentRetriever,VendorDocRequester,DocGetter,但他们就是不健全的权利。我最终浏览了dictionary.com半个小时,试图提出一个适当的单词。 用坏名字开始编程就像早上头发非常糟糕,一天的其余部分从那里走下坡路一样。觉得我吗?

10
a2ensite的网站不存在错误
我cmsplus.dev在/etc/apache2/sites-available用下面的代码, <VirtualHost *:80> ServerAdmin master@server.com ServerName www.cmsplus.dev ServerAlias cmsplus.dev DocumentRoot /var/www/cmsplus.dev/public LogLevel warn ErrorLog /var/www/cmsplus.dev/log/error.log CustomLog /var/www/cmsplus.dev/log/access.log combined </VirtualHost> 现在,当我使用时sudo /usr/sbin/a2ensite cmsplus.dev,我得到了错误, ERROR: Site cmsplus.dev does not exist! 我的网络服务器 Apache/2.4.6 (Ubuntu) 如何解决这个问题?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.