Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections).

两者都存储对象的集合,通过键(key)来访问。数组的键是整数。而散列表支持以任何对象作为它的键。数组和散列表会按需调整大小来保存新的元素。访问数组元素是高效的,但是散列表提供了灵活性。任何具体的数组或散列表可以保存不同类型的对象。
使用数组字面量(array literal)--即方括号之间放一组元素--可以创建和初始化新的数组对象。有了数组对象,在方括号之间提供索引便可以访问单个元素,如下例所示,注意Ruby数组的索引从零开始。
a=[1,'cat',3.14] #有三个元素的数组
#访问第一个元素
a[0] -> 1
#设置第三个元素
a[2] = nil
#显示这个数组
a ->[1,'cat',nil]
你可能已注意到在这个例子中使用了nil这个特别的值。许多语言中nil(或null)的概念是指“没有对象”。在Ruby中,这是不一样的;nil是一个对象,与别的对象一样,只不过它用来表示没有任何东西的对象。
有时候创建一组单词的数组是一件痛苦的事情--要处理许多引号和逗号。幸运的是,Ruby有一种快捷方式:%w 能够完成我们想做的事情。
a = ['ant','bee','cat','dog','elk']
a[0] -> "ant"
a[3] -> "dog"
#this is the same:
a = %w{ant bee cat dog elk}
a[0] -> "ant"
a[3] -> "dog"
Ruby的散列表与数组相似。散列表字面量(hash literal)使用花括号而不是方括号。这个字面量必须为每一项提供两个对象:一个键(key)和一个值(value)。
例如,你可能想将乐器映射到它们所属的交响乐章节,可以用散列表这么来做:
inst_section = {
'cello' => 'string',
'clarinet' => 'woodwind',
'drum' => 'percussion',
'oboe' => 'woodwind',
'trumpet' => 'brass',
'violin' => 'string'
}
=>的左边是键(key),右边是其对应的值(value)。在一个散列表里面,键必须是唯一的(不能有两个“drum”项)。散列表里面的键和值可以是任意对象--你可能会有这样的散列表,它的值是数组或别的散列表等。
散列表使用与数组相同的方括号表示法来进行索引。
inst_section['oboe'] -> "woodwind"
inst_section['cello'] -> "string"
inst_section['bassoon'] -> nil
正如上例所示,默认情况下,如果用一个散列表没有包含的键进行索引,散列表就返回nil。通常这样是很方便的,比如在条件表达式中nil就意味着false。而有时候你可能想改变这个默认动作。比如使用散列表来计算每个键出现的次数时,如果这个默认值是0的话就会很方便。这很容易做到:当创建一个新的空散列表时,可以指定一个默认值。
histogram = Hash.new(0)
histogram['key1'] ->0
histogram['key1'] = histogram['key1']+1
histogram['key1'] ->1
相关推荐:
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
《权重参谋:让您的网站轻松登顶搜索引擎的秘密武器》,设计微信社群私域营销推广简案
怎样利用AI写文章,轻松提升写作效率
AI上的文章属于原创吗?人工智能创作内容的归属问题
AI提取文章重要内容:让信息抓取更高效、更精准,松鼠ai 教学
seo适用于什么领域,seo适用于什么领域中 ,ai智能翻译写作机器人v1.0
SEO优化:如何让网站更具有吸引力,散文ai写作咒语是什么
未来科技:AI工具为生活赋能,打造智能未来
seo用什么写属性写,seo属于什么 ,芭田科学施肥AI
企业SEO:如何通过搜索引擎优化提升企业网络竞争力,安阳网站优化布局设计
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
求一个AI软件,彻底改变你的工作与生活!
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
AI+写文章:开启智能创作新时代
SEO努力:提升网站排名的关键策略,网站建设微企动力
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
AI一键生成文章免费版:颠覆写作新体验
seo站长什么意思,站长工具 - seo综合查询 ,ai少女身材
SEO优化的利器:提升网站排名的秘密武器,联想ai7g-3笔记本
ChatGPT网页版内容显示不全的解决方案:如何轻松解决问题?,课件ai
优化*:打造更加高效、创新的娱乐体验,石排网站建设制作多少钱
SEO字:如何通过精准关键词提升网站流量与排名,赣州于都网站推广
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
SEO师:如何在数字时代为企业赢得流量与销量,十堰网站关键词优化教程
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
ChatGPT最新版本更新内容:智能对话体验再升级,更多功能与应用,ai证伪
智能AI写作生成:如何借助人工智能提升创作效率与质量
云推SEO:让您的网站在激烈竞争中脱颖而出,网站优化公司欢迎来电
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
AI代谢文章:从灵感到成果的创作革命
SEO学堂:开启数字营销新时代,全面提升网站排名与流量,文山ai营销推广方案
SEO做法-提升网站流量与排名的关键秘诀,屏东网站推广招聘
为什么要监控SEO效果,国家为什么要监控个人 ,抚顺ai系统
seo需要保持什么心态,seo的要求 ,ai83562
在线AI生成文章:智能写作的未来趋势
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
ChatGPT无法访问原因分析及解决方案,斑马ai报道
SEO用户:如何为您的网站带来持续流量和转化,惠州网站推广哪个好
SEO已经成为数字营销的核心,如何利用SEO提升网站流量和转化率,含山网站优化推广
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
AI免费生成文章的软件:轻松创作的秘密武器
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工