编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 课外def name的问题?
指数 -> 编程,Ruby. -> 红宝石的帮助
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
Tokenherbz.




邮政发布: 2010年12月16日上午11:30  帖子主题:课堂内的def名称问题?

我不知道为什么这不起作用。在课堂上的内部制作,我正在尝试在它创建时'授权'对象。我遇到了一些非常奇怪的东西。

如果我使用'def init'或'def oder_name'它工作正常,但如果我使用'def initialize'它不起作用,为什么?对我来说没有意义3d中奖规则

这个小代码不起作用....
红宝石:

def initialize(X,Y.)
  @x = x
  @y = y
结尾


那么为什么这个代码有效???!?它同样的事情减去了def名字。 (我妥善调用它,也用其他def姓名测试,他们工作)
红宝石:

def init(X,Y.)
  @x = x
  @y = y
结尾
赞助
赞助
赞助
赞助
魔鬼




邮政发布: 2010年12月16日12:09 PM  帖子主题:RE:课堂内的def名称问题?

不知道Ruby,我无法确定,但我怀疑它有事情要做: http://ruby.activeventure.com/usersguide/rg/objinitialization.html

看起来像 初始化 可能是只能通过对象构造(新)调用的保留名称。
WTD.




邮政发布: 2010年12月16日12:10 PM  帖子主题:RE:课堂内的def名称问题?

发布您的所有代码。
Tokenherbz.




邮政发布: 2010年12月16日12:36 PM  帖子主题:RE:课堂内的def名称问题?

好吧,我警告你就像一团糟的测试东西3d中奖规则我甚至不能让这件事能够正确工作,即使是测试看起来很有希望3d中奖规则

但如果您将“init”更改为“初始化”,则它不适用于所有和错误。

红宝石:

cards_per_deck =. 52
套装s_of_cards = 4
decks_played_with = 4
Total_cards_ed = cards_per_deck * decks_played_with

班级 Card
  attr_accessor. :@value, :@suit

  def init(价值,西装)

    如果 价值==. 0
      @value = “一种”
    埃莉丝 价值==. 10
      @value = “j”
    埃莉丝 价值==. 11
      @value = “q”
    埃莉丝 价值==. 12
      @value = “k”
    别的
      @value = value
    结尾

    @suit = 案件 suit
    什么时候 0
      “S”
    什么时候 1
      “C”
    什么时候 2
      “H”
    什么时候 3
      “D”
    别的
      “?”
    结尾
  结尾

  def printCard
    打印 @value, @suit
  结尾
结尾

card_temp. =. 0
卡= 大批.新的(total_cards_ed., Card.新的)
decks_played_with。时代{
  SUITS_OF_CARDS.时代{|西装|
    (cards_per_deck / suits_of_cards.).时代{|价值|
      打印 value,“ - ”,套装, “ - ”,卡片_temp
      put
      card[card_temp.].在里面(价值,西装)
      card_temp += 1
    }
  }
}

total_cards_ed..时代{| x |
  card[x].打印卡
  put
}


侧面注意和问题(即时仍在处理它,但自代码以来,无论如何都在发布问题)

但是当我将变量/ value / temp_card放置它们都正确显示,因此当我尝试分配正确的值(传递到阵列中使用的类)并打印以查看之后,它始终将所有卡显示为国王dimonds 3d中奖规则?
Jcollins1991.




邮政发布: 2010年12月16日下午1:05  帖子主题:RE:课堂内的def名称问题?

我不是100%肯定,但它看起来就像你用单个类实例初始化数组一样,所以当你循环初始化它们时,你一遍又一遍地在同一卡上做init,在这种情况下Init步骤可能是值= 12,适合= 4给出钻石之王作为结果。尝试在循环中创建新的卡对象而不是作为array.new的参数.new
Tokenherbz.




邮政发布: 2010年12月16日下午1:09  帖子主题:RE:课堂内的def名称问题?

哦,这将是有意义的,我想我是独立地宣布一系列类引用的值3d中奖规则如卡=数组1 .. 52的^卡

代码:

卡= Array.New.(TOTAL_CARDS_USED)
卡[x] =卡。新闻
卡[x] .Init(x,y)


这样可行。
Jcollins1991.




邮政发布: 2010年12月16日下午1:30  帖子主题:RE:课堂内的def名称问题?

你也可以尝试

[symtax​​ =“”]
#在此处创建多个副本
a = array.new(2){hash.new}
a [0] ['cat'] ='feline'
a
[/句法]

以一行初始化它(ruby-doc.org上的array文档示例)
Tokenherbz.




邮政发布: 2010年12月16日下午1:58  帖子主题:RE:课堂内的def名称问题?

我很确定我的方式较少打字然后52卡组合3d中奖规则 thx tho
赞助
赞助
赞助
赞助
Jcollins1991.




邮政发布: 2010年12月16日星期四:下午2:19  帖子主题:RE:课堂内的def名称问题?

你不需要打字那么多3d中奖规则

红宝石:

卡= 大批.新的(total_cards_ed.) { |index|
 总体_number = index% 52
 card_number = solor_number% 4
 suit_number = salid_number% 12
 
  card = Card.新的()
  card.在里面(card_number,suit_number.)
  card
}



不是一行,但它有点简单,然后创建一个数组而不是单独迭代。如果您为类编写自己的“新”功能,则可以将最后3行减少到一个(类似“卡片.New(Card_Number,Suit_Number)”)。

而且你真的不需要使用total_cards_used.times ...

红宝石:
卡片。每个 { |c| c.打印卡 }


此外,您可能需要考虑编写“to_s”功能(类别中大多数内置的标准),这在此处并不是真正必要的,但它在您需要对类的操作和输出字符串版本的其他情况下它可以很有用。
魔鬼




邮政发布: 2010年12月16日星期四下午2:48  帖子主题:RE:课堂内的def名称问题?

你可能想要 套装_number = scall_number%13, 实际上。然后,还有事实上,您只需使用索引而不是Salid_Number。
Tokenherbz.




邮政发布: 2010年12月16日星期四下午2:55  帖子主题:RE:课堂内的def名称问题?

嗯,这实际上真的很疯狂3d中奖规则我会重做我的代码以这种方式尝试它。
从上一个显示帖子:   
   指数 -> 编程,Ruby. -> 红宝石的帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 11 Posts ]
跳到:   


Style:  
搜索: