1、创建数组

a=Array.new(6,obj=nil)  #=> [nil, nil, nil, nil, nil, nil] 设置默认值
a=Array.new(6)           #=> [nil, nil, nil, nil, nil, nil] 默认值为nil
a=Array.new(6,obj=1){|obj| obj+1}  #=> [1, 2, 3, 4, 5, 6] 默认值进行块里面的迭代
a=%w{1 2 3 4 5 6}     #=> [1, 2, 3, 4, 5, 6]
a=[1, 2, 3, 4, 5, 6]      #=> [1, 2, 3, 4, 5, 6]

2、数组操作

require 'iconv'

methods=[
  ["a","数组"],
  ['a.length',"长度"],
  ['a[-1]','倒数第一个'],
  ['a[10]','超出数组的长度下标都表示nil'],
  ['a[2,3]','表示下标从2开始的连续3个数组段'],
  ['a[1..3]','表示下标从1到下标3的数组段'],
  ['a[1..3]','表示下标从1到下标2的数组段,不包含最后一个数'],
  ['a.delete_at(0)','把第一个元素给删除了'],
  ['a.insert(0, 1)','把1插入到数组开始处'],
  ['a.slice!(1, 2)','(slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素'],
  ['a<<7','添加到数组末尾 同 a.push(7)'],
  ['a.pop(2)','删除末尾2个元素  同 a.slice!(-1,2)'],
  ['a.shift(2)','删除前面两个元素 同 a.slice!(0,2)'],
  ['a.unshift(1,2)','前面插入两个元素 同 a.insert(0, 1,2)'],
  ['a=[0]+a','[(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]'],
  ]
methods.each { |method| puts "#{method[0]} => #{eval(method[0])} # #{Iconv.conv("GB18030","UTF-8",method[1]) }" }

 

为了达到输出这种格式  “a => 123456 # 数组”而又不用每个去格式化,所有可以利用ruby的 eval动态执行代码,由于有中文所以用到了

Iconv.conv 方法转码。

输出如下

a => 123456 # 数组
a.length => 6 # 长度
a[-1] => 6 # 倒数第一个
a[10] =>  # 超出数组的长度下标都表示nil
a[2,3] => 345 # 表示下标从2开始的连续3个数组段
a[1..3] => 234 # 表示下标从1到下标3的数组段
a[1..3] => 234 # 表示下标从1到下标2的数组段,不包含最后一个数
a.delete_at(0) => 1 # 把第一个元素给删除了
a.insert(0, 1) => 123456 # 把1插入到数组开始处
a.slice!(1, 2) => 23 # (slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素
a<<7 => 14567 # 添加到数组末尾 同 a.push(7)
a.pop(2) => 67 # 删除末尾2个元素  同 a.slice!(-1,2)
a.shift(2) => 14 # 删除前面两个元素 同 a.slice!(0,2)
a.unshift(1,2) => 125 # 前面插入两个元素 同 a.insert(0, 1,2)
a=[0]+a => 0125 # [(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]

Ruby-Array数组的更多相关文章

  1. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  2. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  3. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  4. 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量

    多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...

  5. c++中的array数组和vector数组

    我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <a ...

  6. Java Script基础(八) Array数组对象

    一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法 ...

  7. JavaScript string array 数组

    Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...

  8. php中foreach()函数与Array数组经典案例讲解

    //php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...

  9. Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理

    Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...

  10. js Array数组的使用

    js Array数组的使用   Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元 ...

随机推荐

  1. linux平台编译安装Poco C++

    1.到官网下载poco-1.4.6p4-all.tar.gz,地址为http://pocoproject.org/download/index.html 2.同时下载说明文档 3.根据说明文档执行安装 ...

  2. Python 100道题深入理解

    # -*- coding: utf-8 -*-# 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?# 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所 ...

  3. mesos INSTALL

    $ git clone https://github.com/mesosphere/playa-mesos $ cd playa-mesos $ vagrant up --provision

  4. oracle之压缩表

    oracle压缩数据的处理基于数据库块,本质是通过消除在数据库中的重复数据来实现空间节约. 具体做法: 比较数据块中包含的所有字段或记录,其中重复的数据只在位于数据块开始部分的记号表(Symbol T ...

  5. Python socket进阶 多线程/进程

    #首先,什么场合下用进程,什么场合下用线程: . 计算密集型的用进程. . IO密集型的用进程. xSocket语法及相关 Socket Families(地址簇) socket.AF_UNIX un ...

  6. [内核同步]Linux内核同步机制之completion

    转自:http://blog.csdn.net/bullbat/article/details/7401688 内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束.这个活动 ...

  7. 使用air16sdk打包ipa报错

    报错如下图: google下 https://forums.adobe.com/thread/1659726 说明了一切 首先:air sdk中打包ipa 需要使用ios sdk的路径但是这个路径最后 ...

  8. 关于block的一些理解

    之前一直都是用这别人或者是系统系统封装好的block,用这都挺好,可以访问那些定义了block变量的函数变量在block中使用. 首先总结一个block的用法:1.block有些类似于函数的指针 拥有 ...

  9. EntityFramework tt模板

    http://www.cnblogs.com/hanyinglong/archive/2013/04/18/3029649.html

  10. linux装载可执行程序简析

    朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 linux中主要 ...