设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1698|回复: 5
打印 上一主题 下一主题

[已经解决] 关于Struct.new

 关闭 [复制链接]

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

跳转到指定楼层
1
发表于 2011-9-19 20:16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前看KGC分配属性点的脚本里就看见了这玩意。
虽然好奇是什么,但也没怎么在意。
今天又看见了,就问问了。
这个Struct.new到底是神马?

点评

那么我就不知道了,前辈都不知道,我怎么可能知道T T  发表于 2011-9-19 20:42

Lv1.梦旅人

梦石
0
星屑
48
在线时间
678 小时
注册时间
2010-8-11
帖子
1533
2
发表于 2011-9-19 20:27:57 | 只看该作者
Struct英文不是结构的意思咩=w=?

点评

这个知道,英文的构造,结构的意思。就是这个Struct.new在F1也找不着,所以来这问了。  发表于 2011-9-19 20:40
小艾工作室开张= =
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

3
发表于 2011-9-20 05:41:01 | 只看该作者
也是不懂这语句,倒是看过这帖:
http://www.ruby-doc.org/core/classes/Struct.html
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2011-9-20 06:44:33 | 只看该作者
结构体,可以把多种变量设置成为多个属性,看起来有点像Class,又有点像Hash

评分

参与人数 1星屑 +14 收起 理由
feizhaodan + 14 谢谢

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

5
发表于 2011-9-20 09:45:04 | 只看该作者
等同于 C++ 的 struct 结构体.

把多个不同的对象归类到一起, 思路上更符合 OO 思想吧.

对于 class 的不同之处在于 Struct 里定义的属性都是对外可以访问的. class 默认是私有的.

评分

参与人数 1星屑 +14 收起 理由
feizhaodan + 14 谢谢回答

查看全部评分


《天空之城 —— 破碎的命运》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
115
在线时间
953 小时
注册时间
2007-4-25
帖子
805
6
发表于 2011-9-22 03:23:11 | 只看该作者
八云紫 发表于 2011-9-20 09:45
等同于 C++ 的 struct 结构体.

把多个不同的对象归类到一起, 思路上更符合 OO 思想吧.

不知在那点上“等同于 C++ 的 struct 结构体”?

Ruby 的 Struct 提供的是一种快速创建 Class 的功能,Struct.new 时需要捆绑一系列可读可写的属性,实例创建后就是一个有效的拥有这些属性的 Class,大致上可以看作一种类的模版,或是创建类的语法糖(盖无须明写 class ... end)。从设计模式角度来看,Struct 类是一个工厂类,它生产 Class 的实例。然工厂自身是抽象的,(在用户层)永远无法创建其自身的实例。

无法分配 Struct 对象:
  1. Struct.allocate # => in `allocate': allocator undefined for Struct (TypeError)
复制代码
Struct.new 创建的实际上是 Class 元类对象:
  1. Struct.new(:id) # => #<Class:0x1d1fb88>
复制代码
把多个不同的对象归类到一起, 思路上更符合 OO 思想吧.

相对于什么“更符合”?
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表