小编Pet*_*son的帖子

什么是C ??!??!操作员呢?

我看到一行C看起来像这样:

!ErrorHasOccured() ??!??! HandleError();
Run Code Online (Sandbox Code Playgroud)

它编译正确,似乎运行正常.看起来它正在检查是否发生了错误,如果有错误,它会处理它.但我不确定它在做什么或它是如何做的.看起来程序员正试图表达他们对错误的看法.

我从来没有??!??!在任何编程语言中看过以前,我无法在任何地方找到它的文档.(Google对搜索字词没有帮助??!??!).它做了什么以及代码示例如何工作?

c operators trigraphs

1911
推荐指数
4
解决办法
25万
查看次数

为什么不是◎ܫ◎和☺有效的JavaScript变量名?

我注意到在Internet Explorer中(但不幸的是,在我测试的其他浏览器中没有),您可以使用一些Unicode变量名.这是我的一天,我非常高兴能够编写有趣的Unicode代码,如下所示:

var ??????????? = "You dirty horse.",
    happy?n?mat?p?eia = ":)Yay!",
    ?_? = "emoticon";

alert(??????????? + happy?n?mat?p?eia + ?_?);
Run Code Online (Sandbox Code Playgroud)

但是,出于某些原因,并且???,?_?并且?它们不是有效的变量名称.

为什么?_????工作,但是???,?_??没有?

编辑:在JSFiddle上的浏览器中测试它.我在Internet Explorer 9,Chrome,Firefox和Opera中测试过它.到目前为止,它似乎只适用于Internet Explorer 9.(我不知道Internet Explorer 8及以下版本.)让我知道它是否适用于其他浏览器.

javascript invalid-characters naming-conventions

720
推荐指数
4
解决办法
5万
查看次数

如何在TypeScript中为对象动态分配属性?

如果我想以编程方式将属性分配给Javascript中的对象,我会这样做:

var obj = {};
obj.prop = "value";
Run Code Online (Sandbox Code Playgroud)

但在TypeScript中,这会产生错误:

类型"{}"的值不存在属性"prop"

我应该如何在TypeScript中为对象分配任何新属性?

typescript

291
推荐指数
16
解决办法
26万
查看次数

如何在不改变原始数组的情况下对数组进行排序?

假设我想要一个返回输入数组的排序副本的sort函数.我天真地试过这个

function sort(arr) {
  return arr.sort();
}
Run Code Online (Sandbox Code Playgroud)

我用它测试了它,这表明我的sort方法正在改变数组.

var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a);  //alerts "1,2,3,3,3,4,5,7,7"
Run Code Online (Sandbox Code Playgroud)

我也试过这种方法

function sort(arr) {
  return Array.prototype.sort(arr);
}
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用.

有没有一种简单的方法,优选的方式是不需要手动滚动我自己的排序算法或将数组的每个元素复制到一个新的元素?

javascript

194
推荐指数
7
解决办法
8万
查看次数

如何在Javascript中使用goto?

我有一些我绝对必须使用的代码goto.例如,我想写一个这样的程序:

start:
alert("RINSE");
alert("LATHER");
repeat: goto start
Run Code Online (Sandbox Code Playgroud)

有没有办法在Javascript中这样做?

javascript goto

122
推荐指数
11
解决办法
23万
查看次数

什么是最佳的犹太脚趾切割算法?

我正在为一台能够自动修剪脚趾甲的机器开发软件,这样用户可以简单地将脚放入其中并运行它,而不必通过咬它们或使用指甲钳手动完成它.

我们潜在用户群的很大一部分可能是犹太人,显然,有一种传统是不按顺序修剪脚趾甲(或指甲)

对这一传统的确切应用似乎存在不同意见,但我们认为以下规则足以容纳宗教活动禁止切割脚趾甲的人:

  • 不应连续切割两个相邻的脚趾甲
  • 左脚的切割顺序不应与右脚的顺序相匹配
  • 两次连续运行的切割顺序不应相同.序列不应该容易预测,因此对交替序列进行硬编码不起作用.

这就是我们决定给脚趾编号的方法:

5 4 3 2 1  1 2 3 4 5
Left foot  Right foot
Run Code Online (Sandbox Code Playgroud)

我已编写代码来解决问题,但所使用的算法是次优的:实际上,最差情况下的性能是O(∞).它的工作方式与bogosort相当.这是使用的实际代码的伪代码简化:

function GenerateRandomSequence
   sequence = Array[5]
   foreach (item in sequence)
       item = RandomNumberBetween(1,5)
   return sequence

function GetToenailCuttingOrder
   while (true)
      sequence = GenerateRandomSequence()
      if (!AllItemsAreUnique(sequence))
         continue
      if (NoTwoAdjacentItemsHaveConsecutiveNumbers(sequence))
         return sequence

do
    leftFootSequence = GetToenailCuttingOrder()
    rightFootSequence = GetToenailCuttingOrder()
until (leftFootSequence != rightFootSequence &&
       leftFootSequence != leftFootSequenceFromLastRun &&
       rightFootSequence != rightFootSequenceFromLastRun)
Run Code Online (Sandbox Code Playgroud)

基本上,它会生成随机序列并检查它们是否符合标准.如果它不符合标准,它将重新开始.它不需要花费太长的时间,但它是非常难以预测的. …

language-agnostic algorithm

117
推荐指数
4
解决办法
1万
查看次数

变量的大写第一个字母

我在网上搜索过什么都找不到帮我.我想在变量中使每个单词大写的第一个字母.

到目前为止我尝试过:

toUpperCase();
Run Code Online (Sandbox Code Playgroud)

并且没有运气,因为它标榜所有字母.

javascript jquery

84
推荐指数
10
解决办法
20万
查看次数

将一个浮点数舍入到javascript中的下一个整数

我需要将浮点数舍入到最接近的整数,即使该点后的数字小于0.5.

例如,

  • 4.3应该是5(不是4)
  • 4.8应该是5

我怎样才能在JavaScript中执行此操作?

javascript floating-point rounding

63
推荐指数
4
解决办法
5万
查看次数

Javascript中删除运算符的用途是什么?

删除操作符的行为似乎非常复杂,并且对它实际执行的操作存在许多误解.对我而言,似乎重新分配某些内容undefined会更可靠地完成您的期望.

我从未delete在非实例代码中看到Javascript中实际使用的关键字,我想知道它是否对任何东西特别有用.是否delete有任何通过重新分配无法实现的目的undefined它是否在任何着名的库中使用(例如jQuery,dojo,backbone等)?

javascript

61
推荐指数
3
解决办法
1万
查看次数

如何从C#应用程序中调用(Iron)Python代码?

有没有办法从C#调用Python代码,我假设使用IronPython?如果是这样,怎么样?

c# ironpython

51
推荐指数
3
解决办法
4万
查看次数