Ruby-Array数组
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数组的更多相关文章
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量
多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...
- c++中的array数组和vector数组
我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <a ...
- Java Script基础(八) Array数组对象
一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法 ...
- JavaScript string array 数组
Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...
- php中foreach()函数与Array数组经典案例讲解
//php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...
- Javascript进阶篇——( JavaScript内置对象---下)--Array数组对象---笔记整理
Array 数组对象数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的数组定义的方法: 1. 定义了一个空数组: var ...
- js Array数组的使用
js Array数组的使用 Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元 ...
随机推荐
- linux平台编译安装Poco C++
1.到官网下载poco-1.4.6p4-all.tar.gz,地址为http://pocoproject.org/download/index.html 2.同时下载说明文档 3.根据说明文档执行安装 ...
- Python 100道题深入理解
# -*- coding: utf-8 -*-# 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?# 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所 ...
- mesos INSTALL
$ git clone https://github.com/mesosphere/playa-mesos $ cd playa-mesos $ vagrant up --provision
- oracle之压缩表
oracle压缩数据的处理基于数据库块,本质是通过消除在数据库中的重复数据来实现空间节约. 具体做法: 比较数据块中包含的所有字段或记录,其中重复的数据只在位于数据块开始部分的记号表(Symbol T ...
- Python socket进阶 多线程/进程
#首先,什么场合下用进程,什么场合下用线程: . 计算密集型的用进程. . IO密集型的用进程. xSocket语法及相关 Socket Families(地址簇) socket.AF_UNIX un ...
- [内核同步]Linux内核同步机制之completion
转自:http://blog.csdn.net/bullbat/article/details/7401688 内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束.这个活动 ...
- 使用air16sdk打包ipa报错
报错如下图: google下 https://forums.adobe.com/thread/1659726 说明了一切 首先:air sdk中打包ipa 需要使用ios sdk的路径但是这个路径最后 ...
- 关于block的一些理解
之前一直都是用这别人或者是系统系统封装好的block,用这都挺好,可以访问那些定义了block变量的函数变量在block中使用. 首先总结一个block的用法:1.block有些类似于函数的指针 拥有 ...
- EntityFramework tt模板
http://www.cnblogs.com/hanyinglong/archive/2013/04/18/3029649.html
- linux装载可执行程序简析
朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 linux中主要 ...