`
ibelieve1314love
  • 浏览: 19874 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Ruby中的并行赋值

 
阅读更多

最近开始学习Ruby,感觉Ruby有很多新奇而好玩的东西,非常的灵活。

就拿这个并行赋值来说,它可以在一行代码里,给很多变量同时赋不同的值。

num1, num2 = 1, 2

作用就是num1 = 1, num2=2 , 这个还比较好理解,一眼就能看出来,谁给谁赋值,赋的值是多少,

但下面这种情况,对我这样的初学者就有点迷惑了。

 

num1, num2 = num2, num1 + num2

一开始我的理解是 num1 = num2,这个执行完之后,再用新的num1来计算num2,但是

 

执行后的结果却不是我想的这样。

如果用上面num1,num2的初值1,2来计算的话,结果是num1 = 2, num2 = 3 。

也就是说num2还是用num1最初的值来计算的。

它相当于这样赋值的

 

tmp  = num1
num1 = num2
num2 = tmp + num2


所以从代码表现上来看,它给人的感觉真的是并行同时赋值的,结果可以证明。但它实际解释执行的时候,应该

 

是采取一种特殊的方法,比如我上面猜想的临时变量的方法,来顺序执行的。

 

分享到:
评论

相关推荐

    Ruby编程中的赋值相关操作

    在老版本的Ruby中,赋值语句的返回值是设置...Ruby的赋值实际是以并行方式执行的,所以赋值语句右边的值不受赋值语句本身的影响。在左边的任意一个变量或者属性被赋值之前,右边的值按它们出现的顺序被计算出来。下面这

    Ruby Pocket Reference.pdf

    并行赋值(Parallel Assignment of Variables)允许一次给多个变量赋值,提高代码的简洁性。 #### 范围 范围(Ranges)在 Ruby 中表示一个区间,它常用于循环和条件语句。 #### 方法 方法(Methods)是 Ruby 中...

    详解Ruby当中的算数运算

    并行赋值是Ruby的一个独特特性,允许同时为多个变量赋值。如`a, b, c = 10, 20, 30`,一次性将10赋给a,20赋给b,30赋给c。此外,也可以用于变量的交换,如`a, b = b, a`。 位运算符在Ruby中处理二进制级别的数据,...

    02Ruby 运算符.docx

    综上所述,Ruby中的运算符不仅仅局限于数学运算,还涵盖了逻辑运算、赋值、并行赋值以及位运算等多个方面,极大地丰富了Ruby语言的功能性和灵活性。通过深入理解这些运算符的特点和用法,开发者能够更高效地利用Ruby...

    ruby基础教程中文第四版

    4. **函数和方法**:Ruby中一切皆为对象,函数也是对象,可以赋值、传递和作为参数。方法定义简单,可以使用`=begin`和`=end`进行多行定义。 5. **类与对象**:Ruby是面向对象的语言,所有的数据都是对象,类是用来...

    Ruby程序设计.doc

    Ruby支持并行赋值,即在一个赋值语句中同时给多个变量赋值。 **6.5 嵌套赋值** 嵌套赋值允许在一个表达式中包含多个赋值操作。 **6.6 其他赋值** 除了基本的赋值操作外,Ruby还支持一些特殊的赋值形式。 **6.7 ...

    ruby初学者教程(对初学者很有帮助)

    **6.4 并行赋值** 可以同时为多个变量赋值。 ```ruby a, b = 1, 2 ``` **6.5 嵌套赋值** 可以在一个表达式中包含多个赋值操作。 ```ruby x = y = 5 ``` **6.6 其他赋值** 包括`||=`、`&&=`等赋值运算符。 ``...

    个人ruby学习笔记

    变量赋值操作包括基本赋值、简写赋值运算符(如`+=`, `-=`等)以及并行赋值,例如`x, y, z = 100, 200, 500`。此外,Ruby支持在双引号中使用`#{变量名}`进行变量内插。 ### 数值操作 Ruby支持标准的算术运算符,...

    Ruby袖珍参考手册

    Parallel Assignment of Variables(变量并行赋值)** - Ruby允许一次赋值给多个变量,例如`a, b = 1, 2`。 **7. Symbols(符号)** - 符号是以冒号开头的标识符,例如`:symbol`。它们类似于字符串但更轻量级,...

    Ruby语言入门教程v1.0_ruby语言入门教程_

    5. **GIL(全局解释器锁)与并发**:尽管Ruby有GIL限制了多线程的并行执行,但它依然支持高效的并发处理,比如使用Fiber或者线程池来实现并发。 6. **丰富的库和框架**:Ruby拥有众多高质量的库,如Ruby on Rails...

    Ruby程序设计(简洁清新的教程)

    并行赋值可以同时为多个变量赋值: ```ruby a, b = [1, 2] puts a # 输出1 puts b # 输出2 ``` **6.5 嵌套赋值** 嵌套赋值允许在一个赋值语句中使用多个等号: ```ruby a = b = c = 1 puts a # 输出1 ``` **6.6...

    ruby 程序设计

    ##### §6.4 并行赋值 - **概念**:可以在一行中同时为多个变量赋值。 - **示例**:`a, b = 1, 2` ##### §6.5 嵌套赋值 - **概念**:可以在赋值语句中使用复杂的表达式。 - **示例**:`a = (b = 1) + 2` ##### §...

    RUBY基础入门指南

    **6.4 并行赋值** 可以同时为多个变量赋值。 ```ruby a, b = 1, 2 ``` **6.5 嵌套赋值** 可以在赋值语句中嵌套其他赋值。 ```ruby a = (b = 3) ``` **6.6 其他赋值** 支持更多类型的赋值,如链式赋值。 **...

    ruby语法基础教程

    §6.4 并行赋值 46 §6.5 嵌套赋值 47 §6.6 其他赋值 47 §6.7 条件运算 47 §6.8 case表达式 48 §6.9 循环 49 §6.9.1 Loop 49 §6.9.2 While 50 §6.9.3 Until 50 §6.9.4 Iterator 50 §6.9.5 For..In 51 §...

    ruby186-26.rar

    - **Ruby 2.7** 引入了 Pipeline 操作符(|>),并行赋值改进,以及废弃警告,以帮助开发者逐步移除过时的代码。 - **Ruby 3.0** 带来了更多的性能优化,改进了并发模型,引入了 Actor 模型,以及对语法的进一步清理...

    红宝石之书:冒险的动手指南The Book Of Ruby: A Hands-On Guide for the Adventurous

    - **变量**:Ruby中的变量不需要声明类型,可以直接赋值使用。 - **数据类型**:包括字符串、整数、浮点数、数组、哈希等。 - **流程控制**:提供if/else语句、循环语句等控制结构。 #### 2.2 函数与方法 - **定义...

    Ruby程序设计高级教程

    - **并行赋值**:一次赋值多个变量。 - **嵌套赋值**:复杂的赋值结构。 - **条件运算**:if语句、unless语句等。 - **case表达式**:case...when结构的使用。 - **循环**:for循环、while循环等不同的循环结构。 #...

Global site tag (gtag.js) - Google Analytics