Ruby基础教程4.6 多重赋值_Ruby基础教程4.6 多重赋值试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Ruby基础教程 > 4.6 多重赋值

Ruby基础教程——4.6 多重赋值

我们已经介绍过“变量 = 值”这样的变量赋值方法,Ruby 还提供了一个只用一个表达式就 能给多个变量赋值的简便方法——多重赋值。很多情况下我们都会用到多重赋值,在这里举几个 比较典型的例子供大家参考。 4.6.1 合并执行多个赋值操作 有时我们希望把一组的变量同时赋值。 a = 1 b = 2 c = 3 像这样的赋值语句,程序可以简化为只有一行。 a, b, c = 1, 2, 3 这样就能轻松地将 1、2、3 分别赋值给变量 a、b、c。如果对一组不相关的变量进行多重赋 值,程序会变得难懂,因此建议对彼此相关变量进行多重赋值。 即使 = 左右两边列表的数量不相等,Ruby 也不会报错。左边被赋值的变量的个数比较多时, Ruby 会自动将 nil 赋值给未分配值的变量。 a, b, c, d = 1, 2 p [a, b, c] #=> [1, 2, nil] 变量部分比较少时,Ruby 会忽略掉该值,不会分配多余的值。 a, b, c = 1, 2, 3, 4 p [a, b, c] #=> [1, 2, 3] 变量前加上 *,表示 Ruby 会将未分配的值封装为数组赋值给该变量。 a, b, *c = 1, 2, 3, 4, 5 p [a, b, c] #=> [1, 2, [3, 4, 5]] a, * b, c = 1, 2, 3, 4, 5 p [a, b, c] #-> [1, [2, 3, 4], 5] 4.6.2 置换变量的值 现在我们来考虑一下如何置换变量 a、 b 的值。通常,我们需要一个临时变量 tmp 暂时地保存变量的值。 a, b = 0, 1 tmp = a # 暂时保存变量 a 的值 a = b # 将变量 b 的值赋值给 a b = tmp # 将原本变量 a 的值赋值给变量 b p [a, b] #=> [1, 0] 使用多重赋值,只需一行程序就搞定了。 a, b = 0, 1 a, b = b, a # 置换变量 a、b 的值 p [a, b] #=> [1, 0] 4.6.3 获取数组的元素 用数组赋值,左边有多个变量时,Ruby 会自动获取数组的元素进行多重赋值。 ary = [1, 2] a, b = ary p a #=> 1 p b #=> 2 只是希望获取数组开头的元素时,可以按照以下示例那样做。左边的变量列表以 , 结束,给 人一种“是不是还没写完?”的感觉,建议尽量少用这样的写法。 ary = [1, 2] a, = ary p a #=> 1 4.6.4 获取嵌套数组的元素 我们来看看数组 [ 1, [2, 3], 4 ],用之前介绍的方法,我们可以分别取出 1 ,[ 2, 3 ]、 4 的值。 ary = [1, [2, 3], 4] a, b, c = ary p a #=> 1 p b #=> [2, 3] p c #=> 4 像下面那样把右边的变量括起来后,就可以再进一步将内部数组的元素值取出来。 ary = [1, [2, 3], 4] a, (b1, b2), c = ary # 对与数组结构相对应的变量赋值 p a #=> 1 p b1 #=> 2 p b2 #=> 3 p c #=> 4 只要右边的变量的结构与数组的结构一致,即使再复杂的结构,多重赋值都可以轻松对应。 专栏 变量的命名方法 以变量名开头来决定变量的种类,这是 Ruby 中对变量命名时唯一要坚决遵守的规则。 虽然如此,但是根据以往的编程经验,也有一些非强制性的、约定俗成的变量命令规则。在 大多数情况下,遵循这些规则能使程序变得易于阅读,对我们来说有百利而无一害。 ◎不要过多使用省略的名称 有些编程语言会限制变量名的长度,但 Ruby 不需要在意变量名的长度。当然,过长的 名称是不便于阅读的,但是与其起个不知所云的短的名称,老老实实地为变量取个长点的好 理解的名称,对以后阅读、理解程序是非常有帮助的。 但是,我们也还是有一些约定俗成的短名称变量。进行数学、物理等计算时,根据 计算对象的不同,很多情况下会使用短名称的变量名,像坐标使用 x、y、z,速度使 用 v、w,循环次数使用 m、n 等。另外,我们编写程序时,也经常使用 i、 j 、k 等作为循 环时需用到的变量名。 ◎对于多个单词组合的变量名,使用 _ 隔开各个单词,或者单词以大写字母开头 也就是说,要么这样叫做 sort_list_by_name,要么叫做 sortListByName。 一般来讲,Ruby 中的变量名和方法名使用前者,类名和模块名的使用后者。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Ruby基础教程》其他试读目录

• 4.1 对象
• 4.2 类
• 4.3 变量
• 4.4 常量
• 4.5 保留字
• 4.6 多重赋值 [当前]
• 5.1 什么是条件判断
• 5.2 Ruby 中的条件
• 5.3 逻辑运算符
• 5.4 if 语句
• 5.5 unless 语句
• 5.6 case 语句
• 5.7 if 修饰符与 unless 修饰符
• 5.8 总结