小编Eld*_*rum的帖子

如何在Visual Studio 2012中撤消"范围到此"?

在解决方案资源管理器中,我单击"范围到此"以仅显示解决方案的一部分.现在我找不到如何恢复正常视图.

关闭/重新打开解决方案资源管理器不起作用; 我搜索了每个菜单项,"New Solution Explorer View"也没有工作; 我在Google上找不到任何内容.

我必须遗漏一些明显的东西......必须有一种简单的方法来撤销"范围到这个",对吧?

visual-studio-2012

315
推荐指数
2
解决办法
3万
查看次数

如何在没有警告的情况下重新定义Ruby常量?

我正在运行一些Ruby代码,每次日期更改时都会破坏Ruby文件.在文件中,我有不断的定义,比如

Tau = 2 * Pi
Run Code Online (Sandbox Code Playgroud)

当然,它们使解释器每次都显示不需要的"已初始化的常量"警告,所以,我想要具备以下功能:

def_if_not_defined(:Tau, 2 * Pi)
redef_without_warning(:Tau, 2 * Pi)
Run Code Online (Sandbox Code Playgroud)

通过编写我的所有常量定义,我可以避免警告:

Tau = 2 * Pi unless defined?(Tau)
Run Code Online (Sandbox Code Playgroud)

但它不够优雅,有点潮湿(不是).

有更好的方法def_if_not_defined吗?怎么样redef_without_warning

-

谢谢Steve的解决方案:

class Object
  def def_if_not_defined(const, value)
    mod = self.is_a?(Module) ? self : self.class
    mod.const_set(const, value) unless mod.const_defined?(const)
  end

  def redef_without_warning(const, value)
    mod = self.is_a?(Module) ? self : self.class
    mod.send(:remove_const, const) if mod.const_defined?(const)
    mod.const_set(const, value)
  end
end

A = 1
redef_without_warning :A, 2
fail 'unit test' unless A == …
Run Code Online (Sandbox Code Playgroud)

ruby constants redefine redefinition

55
推荐指数
2
解决办法
3万
查看次数

在Scala元组上使用功能组合器?

'map'保留了元素的数量,因此在元组上使用它似乎是明智的.

到目前为止我的尝试:

scala> (3,4).map(_*2)    
error: value map is not a member of (Int, Int)
       (3,4).map(_*2)
             ^
scala> (3,4).productIterator.map(_*2)
error: value * is not a member of Any
       (3,4).productIterator.map(_*2)
                                  ^
scala> (3,4).productIterator.map(_.asInstanceOf[Int]*2)
res4: Iterator[Int] = non-empty iterator

scala> (3,4).productIterator.map(_.asInstanceOf[Int]*2).toList
res5: List[Int] = List(6, 8)
Run Code Online (Sandbox Code Playgroud)

它看起来很痛苦......我甚至还没有开始尝试将它转换回元组.
我做错了吗?图书馆可以改进吗?

dictionary scala tuples shapeless

43
推荐指数
2
解决办法
2万
查看次数

增长最长的子序列(O(nlogn))

LIS:维基百科

有一件事我无法理解:

为什么X [M [i]]是一个非递减序列?

algorithm lis

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

SQL Server Management Studio中"go"附近的语法不正确

执行以下SQL:

drop function f
go
Run Code Online (Sandbox Code Playgroud)

在MS Sql Server Management Studio中给我这个解析错误:

消息102,级别15,状态1,行1'go'附近的语法不正确.

为什么?

如果我打开一个新选项卡并将SQL复制/粘贴到其中,它也会失败.但是,如果我打开一个新选项卡并完全重新键入SQL,它可以正常工作.

sql parsing ssms newline

14
推荐指数
2
解决办法
3万
查看次数

我应该何时在C#中定义(显式或隐式)转换运算符?

C#的一个鲜为人知的特性是可以创建隐式或显式的用户定义类型转换.我已经写了6年的C#代码了,我从来没有用过它.所以,我担心我可能错过了很好的机会.

什么是用户定义转换的合法,良好用途?您是否有比仅定义自定义方法更好的示例?

-

事实证明,微软有一些关于转换的设计指南,其中最相关的是:

如果最终用户未明确预期此类转换,请勿提供转换运算符.

但什么时候转换"预期"?在玩具编号课程之外,我无法弄清楚任何真实世界的用例.


以下是答案中提供的示例摘要:

  • 弧度/度/双
  • 极地/的Point2D
  • 开尔文/华氏/摄氏度

模式似乎是:隐式转换大多数(仅?)在定义数值/值类型时很有用,转换由公式定义.回想起来,这是显而易见的.不过,我想知道非数字类是否也可以从隐式转换中受益..?

c# casting operator-overloading implicit-conversion explicit-conversion

10
推荐指数
2
解决办法
2214
查看次数

如何在Go中匹配正则表达式和反向引用?

我需要在我的Go代码中匹配使用反向引用的正则表达式(例如\ 1).

这并不是那么容易,因为在Go中,官方的regexp软件包使用RE2引擎,该引擎选择不支持反向引用(以及其他一些鲜为人知的功能),以便可以保证线性时间执行,从而避免使用正则表达式拒绝服务攻击.RE2不支持启用反向引用支持.

在我的代码中,攻击者不存在恶意攻击的风险,我需要反向引用.

我该怎么办?

regex backreference go

8
推荐指数
2
解决办法
3163
查看次数

如何在不干扰正常终止行为的情况下将scala actor添加到现有程序?

执行main()后,该程序不会退出.

object Main
{
    def main(args: Array[String]) {
        ... // existing code
        f()
        ... // existing code
    }
    def f() {
        import scala.actors.Actor._
        val a = actor {
            loop {
                react {
                case msg: String => System.out.println(msg)
                }
            }
        }
        a ! "hello world"
    }
}
Run Code Online (Sandbox Code Playgroud)

由于这种意想不到的副作用,使用演员可以被视为侵入性.

假设演员必须继续运行直到程序终止,您将如何在所有终止案例中保留原始行为?

scala termination exit actor

6
推荐指数
1
解决办法
1382
查看次数

为什么.Net字典看起来像是排序的?

我正在查看我的同事签入的一些代码,它看起来像这样:

return list.OrderBy(item => item.Order).ToDictionary(item => item.Id);
Run Code Online (Sandbox Code Playgroud)

我立即告诉我的同事他的代码是错误的,因为它Dictionary是一个哈希表,一个非排序的集合.他应该使用保留订单的集合,或者稍后当他从字典中读取它们时对它们进行排序foreach,我说.

但他回答说"不,不,我的代码是正确的!看:现在我已添加了OrderBy,项目按正确的顺序出现."

事实证明,在测试用例中,他是对的.我尝试了其他一些数据,但它仍然完美排序!

我告诉他,他不应该依赖这种行为,但他不同意,我无法解释原因.此外,我很感兴趣为什么这个订单似乎经常被保留下来.

所以我的问题是......为什么Dictionary一个从根本上未分类的集合看起来非常像它被排序?

.net c# sorting dictionary hashtable

6
推荐指数
1
解决办法
1226
查看次数

作为我的编译器的后端?

我想为我自己的编程语言编写一个编译器.流行的后端选择似乎是C,Java,LLVM,JVM字节码,.Net字节码,gcc,汇编......在这里,我正在考虑Go作为后端的可能性.

Go显然是一种快速语言,具有垃圾收集和快速编译时间.它也是便携式和免费的(BSD式许可证).所有这些都会让Go成为一个很好的选择作为代码生成的目标,我想,甚至可能比其他选项更好......所以我很惊讶我找不到任何人这样做.

Go会是代码生成的好选择吗?你能指出现有项目这样做,还是解释为什么没有?或者甚至更好,您是否有使用Go语言作为后端的经验?我不知道有什么缺点吗?

(我对Go在这里特别感兴趣.不要只指出备用的后端选项,有问题已经回答.)

compiler-construction code-generation backend go

6
推荐指数
1
解决办法
926
查看次数

Nullable <T>与类似的自定义C#结构有何不同?

Nullable微优化(第一部分)中,Eric提到了Nullable<T>一种奇怪的拳击行为,这种行为无法通过类似的用户定义类型实现.

C#语言赋予预定义Nullable<T>类型的特殊功能有哪些?特别是那些无法在某种MyNullable类型上工作的.

当然,Nullable<T>有特殊的语法糖T?,但我的问题更多是关于语义.

c# language-features boxing nullable

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

如何在运行时获取jruby版本?

我需要获取jruby版本以进行日志记录和调试.

我试着寻找JRuby.runtime一种version方法,但我找不到任何有用的东西.

我也考虑过使用%x{jruby -v}.它适用于大多数情况,除了总是有可能安装了多个jruby版本,我想得到当前运行的解释器的版本.

我错过了什么?有什么建议吗?

runtime jruby version

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