小编A Q*_*ker的帖子

如何实施"公共/受保护/私有"方法,以及如何模拟它?

在ruby中,你可以这样做:

class Thing
  public
  def f1
    puts "f1"
  end

  private
  def f2
    puts "f2"
  end

  public
  def f3
    puts "f3"
  end

  private
  def f4
    puts "f4"
  end
end
Run Code Online (Sandbox Code Playgroud)

现在f1和f3以及public,f2和f4是私有的.内部发生了什么,允许您调用一个类方法然后更改方法定义?我怎样才能实现相同的功能(表面上是为了创建我自己的java注释)

例如...

class Thing
  fun
  def f1
    puts "hey"
  end

  notfun
  def f2
    puts "hey"
  end
end
Run Code Online (Sandbox Code Playgroud)

而fun和notfun将改变以下函数定义.

谢谢

ruby access-specifier

5
推荐指数
1
解决办法
325
查看次数

是否有刚刚分配的变量的ruby钩子?

这是我理想的样子.用户:

a="hello"
Run Code Online (Sandbox Code Playgroud)

输出将是

You just allocated "a" !
 => "Hello" 
Run Code Online (Sandbox Code Playgroud)

只要我能使消息发生,订单就无关紧要了.

ruby

5
推荐指数
1
解决办法
493
查看次数

对于从自定义类映射的HashMap,如何使两个等效键映射到值?

我有一个自定义类,例如,让我们说它是没有顺序的元组.

public class UnorderedTuple {  
    Integer i1 = null; Integer i2 = null;

    UnorderedTuple(Integer int1, Integer int2) { i1 = int1; i2 = int2; }

    boolean equals(UnorderedTuple t) { return t.i1 == i1 && t.i2 == t2 || t.i2 == i1 && t.i1 == i2; }
}
Run Code Online (Sandbox Code Playgroud)

就像我说的,一个愚蠢的例子.现在,让我说我有

Map<UnorderedTuple, Integer> m = new HashMap<UnorderedTuple, Integer>();
Run Code Online (Sandbox Code Playgroud)

理想情况下,我喜欢这个功能:

UnorderedTuple ut1 = new UnorderedTuple(1,2);
UnorderedTuple ut2 = new UnorderedTuple(2,1);

m.put(ut1,2);
m.put(ut2,3);
System.out.println(m.get(ut1)==3); //ideally returns true
Run Code Online (Sandbox Code Playgroud)

有什么我需要实现或扩展,以便我可以拥有此功能?以同样的方式,如果您使用2个不同但相等的字符串,或整数,或任何作为键,它将正确映射它,但如果我按照写入实现它,它将分别处理ut1和ut2.即使我构造ut1和ut2相同,它也会做同样的事情.

谢谢你的帮助.

java

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

ruby类可以静态跟踪子类吗?

我的目标是:

class MyBeautifulRubyClass
  #some code goes here
end

puts MyBeautifulRubyClass.subclasses #returns 0

class SlightlyUglierClass < MyBeautifulRubyClass
end

puts MyBeautifulRubyClass.subclasses #returns 1
Run Code Online (Sandbox Code Playgroud)

理想情况下甚至是地狱

puts MyBeautifulRubyClass.getSubclasses #returns [SlightlyUglierClass] in class object form
Run Code Online (Sandbox Code Playgroud)

我相信这是可能的,只是不确定如何!

ruby

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

是否可以使用 Apache CLI 进行最终的、未命名的参数?

我希望能够有以下形式的参数:

./mything -arg1 hey -arg2 ho filename
Run Code Online (Sandbox Code Playgroud)

所以一个可选的 arg1,一个可选的 arg2,然后是一个未命名的最后一个参数。我想知道是否有办法用 Apache CLI 做到这一点?我可以把它从参数中抓取到 main,但这看起来很笨拙。

感谢任何帮助。

java command-line-interface apache-commons-cli

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

如何将正则表达式应用于多行?

假设我想将以下内容应用到我在vim中编辑的文件中的第60行到第80行.

 :s/{/      {/
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

谢谢!

vim

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

如何通过正确包装类来线程化类型?

trait Thing {
  type Out
  def get: Out
}

case class Wrapper(t: Thing) extends Thing {
  type Out = t.Out
  override def get = t.get
}

def hey(t: Thing): t.Out = Wrapper(t).get
Run Code Online (Sandbox Code Playgroud)

这给了我一个类型错误,虽然它显然是类型安全的.我想知道如何向编译器正确地证明这是安全的而不必进行强制转换.

有任何想法吗?

scala

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

有多少有效的utf8字符?

我知道这有点模糊,所以对于上下文,把它想象成"你可以发推文的角色",或类似的东西.我的问题是,支持utf8的浏览器或服务可以解决多少个有效的unicode字符,这样utf8浏览器可以复制并粘贴它而不会出现任何问题.

我想我不想要的是完整的字符空间,因为我知道很多它是为命令字符或保留字符保留的,不会显示(除非我是超级错误的!).

utf-8

2
推荐指数
1
解决办法
1756
查看次数

在postgres(plpgsql)中,如何创建一个在变量table_name上返回select*的函数?

基本上,至少为了概念验证,我想要一个我可以运行的函数:SELECT res('table_name'); 这将给我SELECT*FROM table_name;的结果.我遇到的问题是架构......在我所拥有的函数的声明中:

创建或替换功能res(table_name TEXT)返回设置此THEPISEPEPROBLEM AS

问题是我不知道如何声明我的返回,因为它要我指定一个表或一个模式,在实际运行该函数之前我不会这样做.

有任何想法吗?

postgresql plpgsql

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

有没有办法在编译时基于ant buildfile在java类中嵌入静态字段?

假设我的项目有一个主类.我很想拥有

public static final String version = "0.0.0.1";
Run Code Online (Sandbox Code Playgroud)

但是,我不想手动设置版本,因为我的ant构建文件具有版本.有没有办法根据构建文件中的值插入此值?

java

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

在单位的情况下如何理解米田的基数?

请注意,这严格来说并不是一个 Haskell 问题,但这就是我一直在玩这个问题的地方,也是我看到 yoneda 引理表达得最干净的地方......

所以,根据 yoneda 引理,我们知道

forall x . (a -> x) -> f x ~= f a
Run Code Online (Sandbox Code Playgroud)

但我想知道的是,当 x 的基数比 a 低时,它对类型 x 是如何工作的?例如,单位...取 f=Identity, a=Integer, x=Unit 我们得到类似

(Integer -> ()) -> Indentity () ~= Identity Int
Run Code Online (Sandbox Code Playgroud)

这似乎没有意义?

我一直认为 yoneda 是这样的,比如 a=Bool 和 x=Int

(Bool -> Integer) -> Identity Integer ~= Identity Bool
Run Code Online (Sandbox Code Playgroud)

从某种意义上说,Identity Integer“似乎”比 Identity Bool 大,但鉴于它必须由 Bool->Integer 构建,我们知道实际上只有两种选择......但我觉得翻转一下,说明上述理解不太对。

我很感激任何帮助理解这一点!

haskell

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

有没有办法从Python外部有效地创建Python对象?

我想从Python外部(在这种情况下,从Java)创建一个序列化的Python对象,以便Python可以读取它并将其视为Python中的对象.我将从更简单的对象(int,float,String等)开始,但我想知道是否可以使用类来完成.

功能是第一位的,但能够快速完成它是紧随其后的.我的想法是,我在Java领域有一些数据,但Python中有一些业务逻辑.我希望能够尽快通过python逻辑流式传输数据......现在,这些数据被串行化为字符串,我觉得这很浪费.

先感谢您

python

0
推荐指数
1
解决办法
63
查看次数