草庐IT

pthread_self

全部标签

ruby - 为什么我们使用 "class << self"表达式?

在Ruby中,有几种方法可以声明类方法。我们有这两种形式...classDogdefself.speciesputs"I'madog."enddefDog.species_rly?puts"Stilladog."endend还有另一个更长的形式...classDogclass为什么使用最后一种形式?这比仅仅这样做有什么好处?classDogdefDog.some_method#...endend 最佳答案 Thiswonderfulbook说这三种语法是相同的。选择哪一个是个人喜好的问题。它还说类名语法(defDog.some_me

Ruby - 实例方法 : why can i use getter without self, 但 setter 仅与 self

我已经使用Ruby一段时间了。现在我要深入挖掘并找到所有问题的答案。我希望我能在这里找到这个问题的答案。所以这是我在下面的代码中的问题:classGameattr_accessor:in_progressdefinitialize@in_progress=falseenddefstart!#debuginfoputsself.inspect#=>#putsself.class.instance_methods(false)#=>[:in_progress,:in_progress=,:start!]putsself.instance_variables#=>[:@in_progress

ruby - self.class.delete 是否调用类方法?

我正在查看Ruby库中的这段代码。我是否正确假设self.class.delete在当前对象上调用class方法调用delete-即引用的对象通过self。defdelete!self.class.delete(self.key)end 最佳答案 它为self的类调用类方法delete。classExampledefself.deleteputs"Classmethod.'self'isa"+self.class.to_senddefdelete!puts"Instancemethod.'self'isa"+self.class.t

ruby - instance_eval 和 class << self 之间的区别?

我似乎无法理解这两个“构造”之间的确切区别。在我看来,以下小脚本应该输出相同的内容三次:classExampleputsselfclass但是,输出是:Example#Example这是我的理由:Example是Class的实例,所以self在类主体中指的是;class套self随便什么obj在给定的block中,在我的例子中是Class的实例那是Example(这是我可能错的地方);instance_eval在给定实例中运行block,因此,在我的例子中,这与将代码直接放入类主体中的block几乎相同。我目前的猜测是class在Example之间插入一个幽灵类和Class并将self

ruby - 当键不存在时从 Hash#[] 返回 self(而不是 nil)

通常,当一个元素被传递到没有匹配键的散列时,散列返回nil。hsh={1=>"one",2=>"two"}hsh[3]#=>nil我想形成一个散列,如果没有匹配,则返回传递给它的值。hsh[3]#=>3我猜这个问题的解决方案可能涉及某种lambda...?**现在我正在为此使用一个笨拙的解决方案,它使用条件方法来防止将不匹配的键传递到哈希中.. 最佳答案 如果您只想返回新值而不想添加它们:h=Hash.new{|_hash,key|key}要最初填充此散列,您可以执行以下操作:h.merge({1=>"one",2=>"two"})

c++ - "checking for self-assignment"有什么问题,它是什么意思?

在HerbSutter的书ExceptionalC++(1999)中,他在第10项的解决方案中有一句话:"Exception-unsafe"and"poordesign"gohandinhand.Ifapieceofcodeisn'texception-safe,that'sgenerallyokayandcansimplybefixed.Butifapieceofcodecannotbemadeexception-safebecauseofitsunderlyingdesign,thatalmostalwaysisasignalofitspoordesign.Example1:Afu

c++ - "checking for self-assignment"有什么问题,它是什么意思?

在HerbSutter的书ExceptionalC++(1999)中,他在第10项的解决方案中有一句话:"Exception-unsafe"and"poordesign"gohandinhand.Ifapieceofcodeisn'texception-safe,that'sgenerallyokayandcansimplybefixed.Butifapieceofcodecannotbemadeexception-safebecauseofitsunderlyingdesign,thatalmostalwaysisasignalofitspoordesign.Example1:Afu

ruby - 为什么 "class << self"中的 self 指的是类?

下面的代码输出“IamThing”。classThingclass我以为“self”指的是Thing类型的对象,但它指的是Thing类。我从之前的一个问题(评论中有链接)中了解到,这与Thing是Object的一个实例有关。以class 最佳答案 方法内部self指的是实例,在类/模块定义内部,但在任何方法之外——指类/模块本身。classThingputsself.inspectdeffooputsself.inspectendendputs"==="Thing.new.foo试试上面的代码,你可能会看到那里发生了什么:类首先被解

ruby - 在 Ruby 中,如果我们定义 "c=(foo)"并返回 foo + 1,为什么不将其分配给 d = (self.c = 3)?

代码是defc=(foo)p"hello"returnfoo+1endpself.c=3d=(self.c=3)pd而且它只会打印出3...换句话说,返回值4没有分配给d,为什么? 最佳答案 Setter总是返回它们的参数(或右操作数,取决于您如何看待它)。 关于ruby-在Ruby中,如果我们定义"c=(foo)"并返回foo+1,为什么不将其分配给d=(self.c=3)?,我们在StackOverflow上找到一个类似的问题: https://stack

用外行的话来说是 Ruby self 吗?

Rubyself什么时候引用Object什么时候self引用Ruby类?有例子的解释会很棒。没有解决这个问题。 最佳答案 类实际上是对象本身。假设我有一个类Person,这实际上是Class的一个实例。因此,您可以让self引用Article的实例,或者让self引用类Article的实例。在我能想到的最简单的例子中:classPersondefinitializep"InfoaboutPersonInstance"pselfpself.classendp"InfoaboutPersonClass"pselfpself.classe