© Shine's Blog

Powered by LOFTER

[Ruby 中文教程 By Chris Pine] 3.变量与赋值

翻译:阳光

 

原文来自 <https://pine.fm/LearnToProgram/?Chapter=03

 

3.变量与赋值

目前为止,不管我们是输出一个字符串还是输出一个数字,我们输出的东西都一闪而过了。我的意思是,如果我们想输出一个东西两边,我们就必须输入两次:

输入

puts '...you can saythat again...'

puts '...you can saythat again...'

输出:

...you can say thatagain...

...you can say thatagain...

如果我们能只输入一次让后把它挂在哪就好了……存储在某处。好吧,我们可以,否则我就不会提这件事了!

要想将字符串存在你计算机的内存中,我们需要给字符串一个名字。程序员通常把这个过程叫做赋值,而那个名字就叫变量。这个变量可以是任意字母与数字的组合,但是第一个字符必须是一个小写字母。让我们试试刚才那个程序,这次那一串字符取名为myString(虽然我也可以叫它str或者myOwnLittleString或者是henryTheEight)。

输入:

myString = '...youcan say that again...'

puts myString

puts myString

输出:

...you can say thatagain...

...you can say thatagain...

无论何时,只要你是的操作是针对myString的,程序会用'...youcan say that again...'来代替。你可以把这个想象成变量myString“指向了”字符串‘...youcan say that again...’。

这是一个更有趣一点的例子:

输入:

name = 'PatriciaRosanna Jessica Mildred Oppenheimer'

puts 'My name is' +name + '.'

puts 'Wow! ' + name+ ' is a really long name!'

输出:

Wow!  Patricia Rosanna Jessica Mildred Oppenheimeris a really long name!

同样,就像我们能将一个object赋值给一个变量一样,我们也可以将一个不同的object再次赋值给同一个变量(这也是我们为什么称其为变量:因为它们指向的内容是可以改变的)。

输入:

composer = 'Mazart'

puts composer + 'was "da bomb", in his day.'

 

composer ='Beethoven'

puts 'But I prefer '+ composer + ', personally.'

输出:

Mozart was "dabomb", in his day.

But I preferBeethoven, personally.

当然,变量可以是任何object,不一定非要指代字符串:

输入:

var = 'just another' + 'string'

puts var

 

var = 5 * (1+2)

puts var

输出:

just another string

 

15

事实上,变量可以只带任何事……除了其他的变量。如果我们非要这么做的话会怎么样呢?

输入:

var1 = 8

var2 = var1

puts var1

puts var2

 

puts ''

var1 = 'eight'

puts var1

puts var2

输出:

8

8

 

eight

8

首先,当我们将var1赋值给var2,它实际上是指向了8(就是var1指向的内容)。然后我们将var1指向了‘eight’,但由于var2并不是真的指向了var1,它依然留在了8上。

现在,我们了解了变量、数字和字符串,现在让我们学着试试把他们混合到一起!


发表于2014-07-07.