草庐IT

SELF-INSTRUCT

全部标签

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

ruby-on-rails - 如何在 Rails 中使用 "self"关键字

关于Rails中的关键字self,我知道关键字指的是类本身的一个实例。例如,在self.encrypted_pa​​ssword中。我不太明白为什么在右侧作为参数传递的属性password也没有以self关键字为前缀?classUsertrue,:confirmation=>true,:length=>{:within=>6..40}before_save:encrypt_passwordprivatedefencrypt_passwordself.encrypted_password=encrypt(password)enddefencrypt(string)string#Onlya

ruby - 通过参数访问对象的 `self`

假设我想以这种方式访问​​随机索引处的数组元素:[1,2,3,4].at(rand(4))有没有办法像下面这样传递数组的大小?[1,2,3,4].at(rand(le_object.self.size))我为什么要那样做?--一位伟人曾说过:科学不是关于为什么,而是关于为什么不。 最佳答案 不推荐,但instance_eval会以某种方式工作:[1,2,3,4].instance_eval{at(rand(size))}你也可以break来自tap:[1,2,3,4].tap{|a|breaka.at(rand(a.size))}有

ruby - 为什么在 ruby​​ 中使用 class << self?

您能解释一下开发人员为什么使用class吗?向基类添加方法?base.rbfromtheGeoPlanetGemmoduleGeoPlanetclassBaseclass 最佳答案 因为他不知道defGeoPlanet::Base.build_url(resource_path,options={})end也可以吗?嗯,它们不是100%等价的:如果GeoPlanet不存在,那么原始代码片段将创建模块,但我的版本将引发NameError.要解决这个问题,您需要这样做:moduleGeoPlanetdefBase.build_url(r

ruby-on-rails - self 可以为假或为零吗?

self是否可以评估为false或nil?例如……classFooBar...defcheck_thisself&&check_something_elseendend这个条件中的self&&是否必要? 最佳答案 是的。记住Ruby中的一切都是对象,所以self对于false和nil是假的:nil.instance_eval{self}#=>nilfalse.instance_eval{self}#=>false 关于ruby-on-rails-self可以为假或为零吗?,我们在Stac

ruby - 访问 self.method_added 中的变量名

我相信Ruby,有一种方法可以访问block中所有局部变量的名称。defsome_method(param1,param2)plocal_variablesend每当调用“some_method”时,param1和param2将被打印出来。不是值(value)!但是变量名。现在,我想在self.method_added内实现相同的结果。只要定义了一个方法,就会调用self.method_added。我希望能够访问在self.method_added中定义的方法的局部变量的名称。例如,defself.method_added(method_name)#printsthevariables