问题列表 - 第24971页

对象分配和指针

我对Ruby中的对象赋值和指针感到有点困惑,并编写了这个代码片段来测试我的假设.

class Foo
    attr_accessor :one, :two
    def initialize(one, two)
        @one = one
        @two = two
    end

end

bar = Foo.new(1, 2)
beans = bar

puts bar
puts beans

beans.one = 2
puts bar
puts beans
puts beans.one
puts bar.one
Run Code Online (Sandbox Code Playgroud)

我曾经假设当我将bar分配给bean时,它会创建一个对象的副本,而修改一个不会影响另一个.唉,输出显示不然.

^_^[jergason:~]$ ruby test.rb 
#<Foo:0x100155c60>
#<Foo:0x100155c60>
#<Foo:0x100155c60>
#<Foo:0x100155c60>
2
2
Run Code Online (Sandbox Code Playgroud)

我相信这些数字与对象的地址有关,并且对于bean和bar都是相同的,当我修改bean时,bar也会被改变,这不是我所期望的.看来我只是创建一个指向对象的指针,而不是它的副本.在分配时复制对象而不是创建指针需要做什么?

使用Array类进行的测试也显示了一些奇怪的行为.

foo = [0, 1, 2, 3, 4, 5]
baz = foo
puts "foo is #{foo}"
puts "baz is #{baz}"
foo.pop
puts "foo is #{foo}"
puts "baz is #{baz}"

foo …
Run Code Online (Sandbox Code Playgroud)

ruby copy object variable-assignment

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

C#.net中的XML数据库

我正在为一些网站开发WPF客户端程序.它使用XML数据库.我是XML的新手.有人请解释如何创建,追加(最重要的),编辑,读取和加密XML文件.我知道这是个大问题.但是,这很紧急.尽快完成工作.在互联网上搜索,没有得到正确的信息.

.net c# xml

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

jQuery 1.4.x和@符号

我曾经使用这个脚本进行jquery电子邮件混淆:

    $(".replaceAt").replaceWith("@");
  $(".obfuscate").each(function () {
        $(this).attr("href", "mailto:"+$(this).text());
    });
Run Code Online (Sandbox Code Playgroud)

<a class="obfuscate">name<span class="replaceAt">-AT-</span>server.com</a>

但是使用jQuery 1.4.x,我现在收到此错误:

未捕获的异常:语法错误,无法识别的表达式:@

在网上看一下,看起来jQuery认为@是一个特殊的角色.我试着"\ @"它以及其他一些没有运气的东西.我不是一个jQuery忍者知道如何解决这个问题.有任何想法吗?

jquery

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

Delphi:我自己的Timer的OnTimer事件永远不会发生

我需要一个'无形'Delphi单元中的Timer(还有一个带有表单的主单元),所以我这样做:

unit ...

interface

type
  TMyTimer = Class(TTimer)
  public
    procedure OnMyTimer(Sender: TObject);
  end;

var
  MyTimer: TMyTimer;

implementation

procedure TMyTimer.OnMyTimer(Sender: TObject);
begin
  ...
end;

initialization

MyTimer := TMyTimer.Create(nil);
with MyTimer do
begin
  Interval := 1000;
  Enabled := True;
  OnTimer := OnMyTimer;
end;

finalization

FreeAndNil(MyTimer);
Run Code Online (Sandbox Code Playgroud)

问题是OnMyTimer过程永远不会运行.我真的很感激为什么:-)

delphi timer delphi-7

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

Java可变参数函数参数

我有一个接受可变数量参数的函数:

foo (Class... types);
Run Code Online (Sandbox Code Playgroud)

其中我得到了一定数量的类类型.接下来,我想要一个功能

bar( ?? )
Run Code Online (Sandbox Code Playgroud)

这也将接受可变数量的参数,并且能够验证变量是相同的数字(这很容易)和相同的类型(硬部分)foo.

我怎样才能做到这一点?

编辑:澄清一下,电话可能是:

foo (String.class, Int.class);
bar ("aaa", 32); // OK!
bar (3); // ERROR!
bar ("aa" , "bb"); //ERROR!
Run Code Online (Sandbox Code Playgroud)

此外,foo和bar是同一类的方法.

java

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

经典字符串操作面试问题?

我计划进行现场面试,所以我准备几个基本问​​题.根据公司简介,他们在字符串操作问题上很重要.到目前为止,我手动编写了这些函数:

  1. 字符串长度,复制,concat,删除空格
  2. 相反
  3. 字谜
  4. 回文

有人可以给我一个更经典的字符串问题列表,我可以在去那里之前练习吗?

string

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

CSS - 为什么我无法设置<a href>元素的高度和宽度?

我正在尝试使用以下html标记创建css按钮:

<a href="access.php" class="css_button_red">Forgot password</a>
Run Code Online (Sandbox Code Playgroud)

但它最终并不比中间的文字大.尽管我已经设定了班级的高度和宽度.

你可以在这里预览问题顺便提一下,www.matkalenderen.no注意第一个按钮,这是一个表单按钮,它正在使用它自己的类.起初我也尝试在css按钮上使用相同的类,并且出现了同样的问题,所以我尝试将它们分成自己的类.万一发生了某种崩溃.但无论如何它并不重要.

我在这里错过了什么?

html css

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

Java和C/C++之间进程间通信的最快(低延迟)方法

我有一个Java应用程序,通过TCP套接字连接到用C/C++开发的"服务器".

app和server都运行在同一台机器上,一个Solaris机箱(但我们最终考虑迁移到Linux).交换的数据类型是简单的消息(登录,登录ACK,然后客户端要求的东西,服务器回复).每条消息长约300字节.

目前我们正在使用套接字,一切正常,但我正在寻找一种更快的方式来交换数据(更低的延迟),使用IPC方法.

我一直在研究网络,并提出了以下技术的参考:

  • 共享内存
  • 管道
  • 队列
  • 以及所谓的DMA(直接内存访问)

但我无法找到他们各自的性能适当的分析,无论是如何实现它们在Java和C/C++(这样他们可以互相交谈),也许除了管我能想象该怎么办.

在这种情况下,任何人都可以评论每种方法的表现和可行性吗?任何有用的实现信息的指针/链接?


编辑/更新

按照我在这里的评论和答案,我发现了有关Unix域套接字的信息,它似乎是通过管道构建的,并且可以节省整个TCP堆栈.它是特定于平台的,因此我计划使用JNI或者judsjunixsocket进行测试.

接下来可能的步骤是直接实现管道,然后共享内存,虽然我已被警告过额外的复杂程度......


谢谢你的帮助

c++ java performance latency ipc

99
推荐指数
6
解决办法
6万
查看次数

方法A和B调用方法C.现在如何找出C里面的人称之为?

我在方法C中有一些代码将根据谁调用它来执行.

public void C()
{
    if(A called me) { .... }
    if(B called me) { .... }
}
Run Code Online (Sandbox Code Playgroud)

一种方法是使用标志变量.在调用C之前设置变量,然后在C中处理标志.

还有其他想法吗?

c#

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

如何删除二叉树的叶子?

我正在尝试删除所有的叶子.我知道叶子没有孩子,这就是我到目前为止所拥有的.

 public void removeLeaves(BinaryTree n){  

    if (n.left == null && n.right == null){

        n = null;

    }

    if (n.left != null)

        removeLeaves(n.left);

    if (n.right != null)

        removeLeaves(n.right);

}
Run Code Online (Sandbox Code Playgroud)

java algorithm recursion binary-tree data-structures

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