GVKun编程网logo

||= (or-equals) 在 Ruby 中是什么意思?(ruby on rails是什么意思)

26

在这篇文章中,我们将带领您了解||=(or-equals)在Ruby中是什么意思?的全貌,包括rubyonrails是什么意思的相关情况。同时,我们还将为您介绍有关&是什么意思。(&点)在Ruby中是

在这篇文章中,我们将带领您了解||= (or-equals) 在 Ruby 中是什么意思?的全貌,包括ruby on rails是什么意思的相关情况。同时,我们还将为您介绍有关& 是什么意思。(& 点)在 Ruby 中是什么意思?、& 是什么意思(& 点)在 Ruby 中是什么意思?、'var that = this;' 是什么意思?在 JavaScript 中是什么意思?、@@variable 在 Ruby 中是什么意思?的知识,以帮助您更好地理解这个主题。

本文目录一览:

||= (or-equals) 在 Ruby 中是什么意思?(ruby on rails是什么意思)

||= (or-equals) 在 Ruby 中是什么意思?(ruby on rails是什么意思)

以下代码在 Ruby 中是什么意思?

||=

它对语法有任何意义或理由吗?

答案1

小编典典

这个问题在 Ruby 邮件列表和 Ruby 博客上已经被讨论得如此频繁,以至于现在 Ruby 邮件列表上甚至还有一些线程,其唯一目的是收集到Ruby
邮件列表上讨论这个问题的 所有其他线程 的链接.

这是一个:||=(或等于)线程和页面的最终列表

如果您 真的 想知道发生了什么,请查看Ruby Language Draft
Specification的第 11.4.2.3
节“Abbreviated assignments” 。

作为第一个近似值,

a ||= b

相当于

a || a = b

并且 等于

a = a || b

但是,这只是第一个近似值,尤其a是在未定义的情况下。语义也不同,具体取决于它是简单的变量赋值、方法赋值还是索引赋值:

a    ||= ba.c  ||= ba[c] ||= b

都被区别对待。

& 是什么意思。(& 点)在 Ruby 中是什么意思?

& 是什么意思。(& 点)在 Ruby 中是什么意思?

我遇到了这行 ruby​​ 代码。这&.意味着什么?

@object&.method

答案1

小编典典

它被称为安全导航操作员。在 Ruby 2.3.0 中引入,它允许您调用对象上的方法,而不必担心对象可能是nil(避免undefined methodfor nil:NilClass错误),类似于tryRails
中的方法。

所以你可以写

@person&.spouse&.name

代替

@person.spouse.name if @person && @person.spouse

从文档:

my_object.my_method

这会将my_method消息发送到my_object。任何对象都可以是接收者,但根据发送消息的方法的可见性,可能会引发NoMethodError.

你可以用&.来指定一个接收者, thenmy_method不被调用,结果是nil当接收者是nil.
在这种情况下,my_method不会评估 的参数。

& 是什么意思(& 点)在 Ruby 中是什么意思?

& 是什么意思(& 点)在 Ruby 中是什么意思?

我遇到了这行 ruby​​ 代码。这&.意味着什么?

@object&.method

'var that = this;' 是什么意思?在 JavaScript 中是什么意思?

'var that = this;' 是什么意思?在 JavaScript 中是什么意思?

在我看到的一个 JavaScript 文件中:

function Somefunction(){   var that = this;    ... }

声明that并将其分配this给它的目的是什么?

答案1

小编典典

我将从一个插图开始这个答案:

var colours = [''red'', ''green'', ''blue''];document.getElementById(''element'').addEventListener(''click'', function() {    // this is a reference to the element clicked on    var that = this;    colours.forEach(function() {        // this is undefined        // that is a reference to the element clicked on    });});

我的回答最初用 jQuery 证明了这一点,只是略有不同:

$(''#element'').click(function(){    // this is a reference to the element clicked on    var that = this;    $(''.elements'').each(function(){        // this is a reference to the current element in the loop        // that is still a reference to the element clicked on    });});

因为this当你调用一个新函数改变作用域时经常会发生变化,所以你不能通过使用它来访问原始值。将其别名为that允许您仍然访问this.

就个人而言,我不喜欢that用作别名。它所指的内容很少很明显,尤其是当函数超过几行时。我 总是
使用更具描述性的别名。在我上面的例子中,我可能会使用clickedEl.

@@variable 在 Ruby 中是什么意思?

@@variable 在 Ruby 中是什么意思?

什么是前面带有双 at 符号 ( @@) 的 Ruby 变量?我对以 at 符号开头的变量的理解是它是一个实例变量,就像 PHP 中这样:

PHP版本

class Person {

    public $name;

    public function setName($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}

红宝石等效

class Person

    def set_name(name)
        @name = name
    end

    def get_name()
        @name
    end
end

双 at 符号是什么@@意思,它与单 at 符号有何不同?

关于||= (or-equals) 在 Ruby 中是什么意思?ruby on rails是什么意思的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于& 是什么意思。(& 点)在 Ruby 中是什么意思?、& 是什么意思(& 点)在 Ruby 中是什么意思?、'var that = this;' 是什么意思?在 JavaScript 中是什么意思?、@@variable 在 Ruby 中是什么意思?等相关知识的信息别忘了在本站进行查找喔。

本文标签: