ruby中如何向C++一样定义和使用多维数组

Python028

ruby中如何向C++一样定义和使用多维数组,第1张

C++中定义与使用数组跟C语言中是一样的。

具体定义与使用方法可以参考如下程序段:

int a[5] // 定义一个含5个元素的int类型的数组double b[5]={3.2, 3.5, 0.8, 8, 5,3} // 定义一个含5个元素的double类型的数组并初始化char c[] ="abcd" // 定义一个字符数组,并初始化a[0] = c[0] // 将字符数组的第一个字符所对应的ASCII码值赋值给数组a的第一个元素printf("%lf", b[3]) // 输出数组b的第4个元素(数组下标从0开始)

本来想写一篇关于数组遍历处理函数的总结的,写着写着发现还是得把这两个函数单独抽出了讲上一讲,我是直接跳进inject和reduce函数里面看的,发现这两个函数注释简直就是复制粘贴,不说这么多,先上图

这里面对两个函数的用法已经讲得很清楚了,我就不再解释了,但是我们可以看到下图,两个函数的用法说明是一摸一样的,但用法示例却是不一样的,难道区别就在这里吗?

于是我就抱着一种求知探索的精神把这两个函数都试了一遍,最终发现它们真的是一模一样的,

先不说这么多,上图自己看(虽然我还是不死心,但是时间紧迫,先试到这里)

感觉讲到这里就没什么好讲了,不行,这样子走掉很没面子的,就再来扯下皮,嗯~,就说一下对inject和reduce函数的个人理解吧,基于上面证明两者是一样的,我就用inject来讲解下(不要问我为什么用inject,因为我喜欢,个人比较懒,就直接用官方示例了)

刚刚写到下面发现写不下去了,所以先回来讲一下inject的作用机理

enum.reduce(initial) { |memo, obj| block }

enum:数组

initial:为初始值赋值

memo:初始值

obj:遍历数组里的具体对象

block:方法体

1.把initial的值赋给memo

2.memo和obj经过block的处理得出的值再次赋给memo

3.这时候memo的值已经更新,继续与obj经过block的处理得出的值再次赋给memo

4.一直重复3步骤直到enum遍历到最后一个对象

基本使用语法:

好,搞定,收工,如果有什么问题可以在下面留言

ruby中每一个方法都有返回值,当然,不一定要使用return。当不使用return时,就返回调用方法时方法内最后一个表达式执行的结果。 当使用return语句时,这样方法的返回值就是return语句的参数。 当使用return语句时,返回值可以是多个,这时候返回值会被转化为一个数组,你可以用多重赋值的形式来使用这个返回值。

满意请采纳