标签: reference

如何获取方法的引用?

是否有可能在Ruby中获取对象方法的引用(我想知道是否可以在没有procs/lambdas的情况下完成),例如,请考虑以下代码:


class X
  def initialize
    @map = {}
    setup_map
  end

  private
  def setup_map
    # @map["a"] = get reference to a method
    # @map["b"] = get reference to b method
    # @map["c"] = get referebce to c method
  end

  public
  def call(a)
    @map["a"](a) if a > 10
    @map["b"](a) if a > 20
    @map["c"](a) if a > 30
  end

  def a(arg)
     puts "a was called with #{arg}"
  end

  def b(arg)
     puts "b was called with #{arg}"
  end

  def c(arg)
    puts "c was called with #{arg}" …
Run Code Online (Sandbox Code Playgroud)

ruby methods hash reference

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

一个与浏览器和DOM相关的好的Javascript API参考文档

我正在寻找一个很好的API文档,特别是与浏览器和DOM相关的Javascript.我不是在寻找任何类型的Javascript教程,而只是所有标准Javascript类和Web浏览器中使用的类的文档.

类似于Java的Javadoc(http://java.sun.com/j2se/1.4.2/docs/api/)

javascript api reference

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

用PHP 5.3.1传递参考问题

好的,这是一个奇怪的问题,所以请在我解释时请耐心等待.

我们将开发服务器从PHP 5.2.5升级到5.3.1.

在切换后加载我们的代码,我们开始得到如下错误:

Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in /home/spot/trunk/system/core/Database.class.php on line 105

提到的(105)行如下:

call_user_func_array(Array($stmt, 'bind_param'), $passArray);
Run Code Online (Sandbox Code Playgroud)

我们将该行更改为以下内容:

call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
Run Code Online (Sandbox Code Playgroud)

此时(因为allow_call_time_pass_reference)被关闭,php抛出这个:

Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105

在尝试解决这个问题一段时间之后,我崩溃了并且开始allow_call_time_pass_reference了.

这摆脱了Deprecated警告,但现在Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference每次都会发出警告,无论有没有引用.

我不知道如何解决这个问题.如果目标方法是我自己的,我只会在func声明中引用传入的变量,但它是一个(相对)本机方法(mysqli).

有没有人经历过这个?我怎么能绕过它呢?

谢谢.

php mysqli reference

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

Windows Visual Themes:零件和状态图库?

Microsoft Windows允许程序员使用像DrawThemeBackground和这样的函数使用当前主题的外观来绘制GUI元素DrawThemeText.这些元素由Class,Part和State指定,如MSDN 的Parts and States页面所述.

不幸的是,页面信息量不大(完全没有!).所以问题是:是否存在所有这些部分和状态的参考,最好是元素的图像(在默认的Windows Vista/7主题中)?

windows delphi winapi themes reference

32
推荐指数
4
解决办法
4888
查看次数

下载Windows API参考(MSDN)以供离线使用

我想离线提供一个Windows API参考文档.MSDN很好,但是当我无法访问互联网时,我也需要这种信息.

pdf,chm,help(对于emacs)没问题.

当然我不是第一个想要那个的人,但我找不到任何东西.有人可以指向一个地方找到它吗?

我看到SDK中可能有引用,但安装它需要大约200 MB,我只需要文档.

windows api documentation reference

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

具有参考成员的分配操作员

这是创建具有引用成员的赋值运算符的有效方法吗?

#include <new>

struct A
{
    int &ref;
    A(int &Ref) : ref(Ref) { }
    A(const A &second) : ref(second.ref) { }
    A &operator =(const A &second)
    {
        if(this == &second)
            return *this;
        this->~A();
        new(this) A(second);
        return *this;
    }
}
Run Code Online (Sandbox Code Playgroud)

它似乎编译并运行良好,但是当c ++倾向于表现出最不期望的未定义行为时,以及所有说它不可能的人,我认为我错过了一些问题.我错过了什么吗?

c++ reference

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

使用公式参考细胞? - Google Spreadsheets

这个问题必须有一个基本的答案,但它让我疯狂.在Google Spreadsheets中,我需要通过(列,行)引用单元格,我可以用公式替换"row"来查找特定行.换句话说,我不能使用像"A7"这样的引用,因为我的行由公式决定.这是给我行号的公式,

=ArrayFormula(MAX(FILTER(ROW(B:B);NOT(ISBLANK(B:B)))))
Run Code Online (Sandbox Code Playgroud)

reference google-sheets

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

变量末尾的&符号(&)等

我是一个C++ noob,我在代码中理解c ++语法的问题.现在我很困惑.

class date
{
private:
int day, month, year;
int correct_date( void );
public:
void set_date( int d, int m, int y );
void actual( void );
void print( void );
void inc( void );
friend int date_ok( const date& );
};
Run Code Online (Sandbox Code Playgroud)

关于'&'字符,我理解它作为参考,地址和逻辑运算符的一般用法......

例如int*Y =&X

参数末尾的&运算符是什么意思?

friend int date_ok( const date& );
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:

谢谢你的回答.如果我已经正确理解了这一点,那么变量名就被省略了,因为它只是一个原型.对于原型我不需要变量名称,它是可选的.那是对的吗?

但是,对于函数的定义我肯定需要变量名,对吧?

c++ reference friend

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

为什么在C++中指向引用的指针是非法的?

正如标题本身所提到的 - 为什么指向引用的指针是非法的,而反向在C++中是合法的?

谢谢.

c++ pointers reference

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

有没有办法返回对函数中创建的变量的引用?

我想编写一个程序,分两步编写一个文件.在程序运行之前,该文件可能不存在.文件名是固定的.

问题是OpenOptions.new().write()可能会失败.在这种情况下,我想调用自定义函数trycreate().我们的想法是创建文件而不是打开它并返回一个句柄.由于文件名是固定的,trycreate()没有参数,我不能设置返回值的生命周期.

我该如何解决这个问题?

use std::io::Write;
use std::fs::OpenOptions;
use std::path::Path;

fn trycreate() -> &OpenOptions {
    let f = OpenOptions::new().write(true).open("foo.txt");
    let mut f = match f {
        Ok(file)  => file,
        Err(_)  => panic!("ERR"),
    };
    f
}

fn main() {
    {
        let f = OpenOptions::new().write(true).open(b"foo.txt");
        let mut f = match f {
            Ok(file)  => file,
            Err(_)  => trycreate("foo.txt"),
        };
        let buf = b"test1\n";
        let _ret = f.write(buf).unwrap();
    }
    println!("50%");
    {
        let f = OpenOptions::new().append(true).open("foo.txt");
        let mut f …
Run Code Online (Sandbox Code Playgroud)

reference lifetime rust

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