`
sunwinner
  • 浏览: 203083 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ruby array slicing - weird behavior

    博客分类:
  • Ruby
阅读更多

If you play around array slicing in irb, it will behavior like below:

 

irb(main):027:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):028:0> a[2,1]      
=> [3]
irb(main):029:0> a[4,1]      
=> nil
irb(main):030:0> a[3,1]
=> []

The weird behavior is that sometimes it return empty array, and sometimes it return nil instead, why that? According to the ruby docs an array split should return nil if the start index is out of range. So why is it that a[3,1] is not returning nil?

 

Below is the reasonable explaination from StackOverflow: 

The end of the array is [], but the end of the array plus 1 is nil. Look at it this way: the Array [1,2,3] can be considered to be constructed from cons cells as such: (1, (2, (3, ())), or 1:2:3:[]. The 3rd index (4th item) is then clearly [].

 

 

分享到:
评论

相关推荐

    network-slicing-for-5g-and-beyond-networks-1st-ed-9

    network-slicing-for-5g-and-beyond-networks-1st-ed-9

    Slicing-by-8-开源

    《Slicing-by-8:Intel 开源的高效CRC算法详解》 在计算机科学领域,循环冗余校验(CRC)是一种广泛使用的错误检测方法,它能够有效地检测数据传输或存储过程中可能出现的错误。CRC通过计算数据块的校验码并与预定...

    O-RAN.WG1.Slicing-Architecture-v03.00.pdf

    该文档的主题聚焦于切片架构(Slicing-Architecture),这在现代通信网络中,尤其是5G网络中,是一个关键技术,因为它支持网络切片这一概念,即在同一物理网络基础设施上创建多个虚拟网络,每个虚拟网络都能提供不同...

    O-RAN.WG1.Slicing-Architecture-v05.00.pdf

    《O-RAN.WG1.Slicing-Architecture-v05.00.pdf》技术规范是ORAN联盟WG1工作组关于NR通信中网络切片架构的标准文档。这份文档详细阐述了ORAN(开放无线接入网)在新一代无线网络(NR)环境下的网络切片设计和实施。...

    5g-service-guaranteed-network-slicing-whitepaper

    network slicing in terms of the vision, end-to end (E2E) solution, key enabling technologies, and the impacts for vertical industries. This white paper describes the thinking on network slicing in 5G

    bit_plan_slicing-.zip_matlab slice_slice_slice matlab

    标题"bit_plan_slicing-.zip_matlab slice_slice_slice matlab"以及描述"this .m file describes how to slice the image into 8 layers"揭示了主要话题,即如何用MATLAB将图像分割成8个位平面。 位平面切片是一种...

    5g-service-guaranteed-network-slicing-whitepaper.zip

    单片机+嵌入式+5G+参考资料

    slicing-toolbox:程序切片的工具箱

    《深入解析slicing-toolbox:程序切片的利器》 在软件工程领域,程序切片是一种强大的分析技术,它能够帮助开发者聚焦于源代码中与特定功能或问题相关的部分,从而提高调试、优化和理解代码的效率。"slicing-...

    3GPP TS 23.501 V16.1.0 5.15 Network Slicing-中英文对照版V1.pdf

    3GPP标准中的网络切片概念(Network Slicing)是随着移动通信技术发展而引入的一种网络架构技术,它允许一个物理网络基础设施支持多个虚拟网络,每个虚拟网络可以独立地配置、管理和优化,以满足不同业务场景和服务...

    slicing-nomerok-mobi

    "slicing-nomerok-mobi"项目可能是一个专门针对移动设备(如手机或平板电脑)的网页切片(slicing)实践,用于将设计稿转换为实际的网页代码。切片是Web设计过程中的一个重要环节,它涉及将设计师的视觉草图精确地...

    slicing-mortal-kombat:切片真人快打

    slicing-mortal-kombat:切片真人快打

    针对垂直行业的5G网络切片白皮书(GSA 华为).pdf

    这份白皮书由全球移动供应商协会(GSA)准备,并得到了爱立信、华为和诺基亚的贡献,针对垂直行业5G网络切片进行了全面介绍。本白皮书深入探讨了数字化转型、垂直行业的需求以及5G网络切片技术,详细描述了如何通过...

    Intensity Level Slicing:此代码用于演示Intensity Level Slicing-matlab开发

    Intensity Level Slicing是一种图像处理技术,它主要用于调整图像的对比度和突出显示图像中的特定强度范围。在MATLAB中,这种技术通常通过操作图像的灰度值来实现,以增强某些区域的细节或使视觉效果更加鲜明。在这...

    Static-Slicing-Tool

    静态切片工具 (课程分配) 任务是为Java字节码实现静态切片算法。 程序切片将计算一组称为程序切片的程序语句,这些语句可能会影响某些关注点(切片标准)上的值。 特别是为J​​ava字节码实现过程内静态切片器。...

    图片拉门动画

    document.getElementById('slicing-image').addEventListener('mouseover', function() { // 分割图片并移动到角落 }); document.getElementById('slicing-image').addEventListener('mouseout', function() { //...

    Watermarking based on bit plane slicing:Watermarking based on bit plane slicing-matlab开发

    位平面分割水印技术是一种数字图像水印技术,它基于位操作来隐藏秘密信息,如版权标记或元数据。在MATLAB环境中实现这种技术,我们可以有效地嵌入和检测水印,确保图像的原始视觉质量不受明显影响,同时保护了内容的...

    GSMA-An-Introduction-to-Network-Slicing.pdf

    An Introduction to Network Slicing 1 Introduction 2 1.1 Abbreviations 3 1.2 Network Slicing: The Concept 3 2 Defining a Network Slice 4 3 The Network Slicing Blueprint 8 4 What can Network Slicing 12 ...

    matlab生成代码调用-FDM-3D-Printer-Slicing-Algorithm:Matlab的FDM3D打印机切片算法。调用Mat

    matlab生成代码调用FDM-3D-打印机切片算法 使用Matlab的FDM 3D 3轴打印切片算法。 该程序可以将stl(二进制或ASCII)模型切成层,并自动生成用于3轴FDM 3D打印的GCode。 您可以通过Gcodeview&analyzer软件甚至Cura...

    Re-slicing_Re-slicingbandwidth_migration_

    在IT行业中,"Re-slicing" 和 "bandwidth migration" 是两个重要的概念,尤其是在网络管理和资源优化领域。这里我们将深入探讨这两个概念,并结合它们的关系来理解如何通过迁移实现带宽的重新分配。 首先,让我们来...

Global site tag (gtag.js) - Google Analytics