jjzjj

Initialization

全部标签

ruby - 在一个类中混合 attr_accessor 和初始化方法

我看到这样的代码:classPersondefinitialize(name)@name=nameendend我知道这让我可以做person=Person.new之类的事情,并像其他方法一样在我的类中的其他地方使用@name。然后,我看到了如下代码:classPersonattr_accessor:nameend...person=Person.newperson.name="David"我只是对这两种方法网格不知所措。definitialize(name)的特殊用途是什么?我想attr_accessor允许我读写。这意味着它们是两种不同的方法。是的?想要澄清definitialize

ruby - 在 ruby​​ 中调用父构造函数

如何调用父类的构造函数?moduleCattr_accessor:c,:ccdefinitializationc,cc@c,@cc=c,ccendendclassBattr_accessor:b,:bbdefinitializationb,bb@b,@bb=b,bbendendclassA谢谢。 最佳答案 Ruby没有构造函数,因此显然不可能调用它们,无论是父类还是其他。然而,Ruby确实有方法,并且为了调用与当前正在执行的方法同名的父方法,您可以使用super关键字。[注意:不带参数的super是传递与当前正在执行的方法相同的参数

ruby - 有没有办法通过散列来初始化对象?

如果我有这个类:classAattr_accessor:b,:c,:dend和这段代码:a=A.newh={"b"=>10,"c"=>20,"d"=>30}是否可以直接从散列初始化对象,而不需要遍历每一对并调用instance_variable_set?像这样的东西:a=A.new(h)这应该会导致每个实例变量被初始化为在散列中具有相同名称的变量。 最佳答案 你可以在你的类上定义一个初始化函数:classAattr_accessor:b,:c,:ddefinitialize(h)h.each{|k,v|public_send("#{

Ruby 对象作为指针打印出来

我正在尝试创建一个类,它有一个接受单个参数的构造函数。当我创建对象的新实例时,它返回一个指针。classAdderdefinitialize(my_num)@my_num=my_numendendy=Adder.new(12)putsy我做错了什么?谢谢 最佳答案 当您使用new方法时,您会获得新创建对象的“引用”。puts内核方法返回有关此对象的一些内部ruby​​信息。如果你想获得关于状态你的对象的任何信息,你可以使用getter方法:classAdderdefinitialize(my_num)@my_num=my_numen

ruby - 使用哈希参数的 DRY Ruby 初始化

我发现自己在构造函数中使用了相当多的哈希参数,尤其是在为配置或最终用户将接触到的其他API位编写DSL时。我最终做的是类似下面的事情:classExamplePROPERTIES=[:name,:age]PROPERTIES.each{|p|attr_readerp}definitialize(args)PROPERTIES.eachdo|p|self.instance_variable_set"@#{p}",args[p]ifnotargs[p].nil?endendend是否没有更惯用的方法来实现这一点?一次性常量和符号到字符串的转换似乎特别令人震惊。

ruby - 如何使用 Ruby 一步初始化一个数组?

我这样初始化一个数组:array=Array.newarray是否可以一步完成?如果是,怎么做? 最佳答案 您可以使用数组文字:array=['1','2','3']您还可以使用一个范围:array=('1'..'3').to_a#parenthesesarerequired#orarray=*('1'..'3')#parenthesesnotrequired,butincludedforclarity对于以空格分隔的字符串数组,您可以使用PercentStringsyntax:array=%w[123]您还可以将block传递给A

javascript - 如何在 TypeScript 中初始化(声明)数组?

我是TypeScript的绝对初学者。我想通过“for”循环在TypeScript中初始化一个数字数组,如下所示:publichours:number[];constructor(){for(leti:number=1;i我得到一个错误:无法设置未定义的属性“1”。你能帮帮我吗? 最佳答案 这一行:publichours:number[];不创建新数组,它只是声明它。如果你编译这段代码:classMyClass{publichours:number[];constructor(){for(leti:number=1;i你得到:var

javascript - 谷歌地图 JS v3 : Map display: none; after map initialization causing corrupted map

这当然涉及到之前关于初始化期间map显示的问题。然而这里的问题是在map应该已经初始化之后map显示被设置为无。我的widow.onload的最后一行将map设置为显示:无;到那时map初始化应该已经完成​​,但事实仍然是最终调用导致了问题。window.onload();函数...window.onload=function(){changeTheme(me);//doitnowsocurrent_themeisavaibletoswitchTabs();switchTabs("tab3");//setsmapdivvisibleinitMaps();//mapinitializat

javascript - angularjs ui-sortable : cannot call methods on sortable prior to initialization; attempted to call method 'refresh'

我正在尝试对列表进行排序,我从数据库中获取元素但是...Error:cannotcallmethodsonsortablepriortoinitialization;attemptedtocallmethod'refresh'我的html:{{item.Title}}还有我的Controller:functionmenuConfigCtrl($location,$scope,menuFactory){$scope.menu=[];menuFactory.getMenu().success(function(data){$scope.menu=data;});}我的getMenu()是:

javascript - jQuery,寻找一种更智能的初始化方式

我正在寻找一种更好的方法来管理大型项目中的全局组件/插件/小部件初始化。它有许多jQuery支持的组件,我想快速高效地初始化这些组件,在搜索互联网之后,我只真正找到了一些短视的例子,这些例子只在较小的网站上是现实的/高性能的。问题我想找到一种聪明而优雅的方法来摆脱它:$(function(){$('.widget-one').widgetOne();});$(function(){$('.widget-two').widgetTwo();});$(function(){$('.widget-three').widgetThree();});$(function(){$('.widget