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(): 创建指定元 ...
随机推荐
- 《C与指针》第七章练习
本章问题 1.具有空函数体的函数可以作为存根使用,你如何对这类函数进行修改,使其更有用? answer:Have the stub(存根) print out a message when it is ...
- LeetCode() Ugly Number II 背下来!
一个别人,非常牛逼的思路,膜拜了!orz!!!! vector <int> results (1,1); int i = 0, j = 0, k = 0; while (results.s ...
- mysql操作汇集
1.修改root密码 cmd进如mysql的bin目录 >mysql -u root -p Enter password: ****** mysql> use mysql; mysql&g ...
- Android Service初始
一.Service概念 1.Service是一个应用程序组件 2.Service没有图像化界面 3.Service通常用来处理一些耗时比较长的操作 4.可以使用Service更新ContentProv ...
- spring技术核心概念纪要
一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...
- eclipse 设置默认编码为Utf-8
Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window->Prefere ...
- linux shell mysql 数据库主从同步状态检查告警
需求: 1.监测数据库主从状态 2.获取数据库主要参数 3.可读取配置文件 4.部署位置自适应. 参考资料: http://blog.csdn.net/yf210yf/article/detail ...
- 优秀IT技术文章集(最新)(高质量)
作者:赵磊 博客:http://elf8848.iteye.com 阅读优秀的文章可以使你快速进步,本文收集了广受好评的优秀IT技术文章,在你有空时读一读,安静下来思考一下. 不断更新中... --- ...
- linux下mysql远程访问
// */ // ]]> linux下mysql远程访问 Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,但项目中必须要远程导 入导出数据,所以研究了一下. Tab ...
- How to Failover the ‘Cluster Group’
If you have more than two nodes in the cluster, you can specify the destination node with the follow ...