我正在 Nitro.io 的盒子里工作,所以我的环境是用最后的功能构建的。
启动 irb...
>name = "James", lname = "Smith"
=> ["James", "Smith"]
它创建一个包含这两个字符串的数组。我可以通过name[0]
或name[1]
访问它们以获得我需要的输出:
>"First name " + name[0] + ", Last name " + name[1]
=>"First name James, Last name Smith"
我需要通过访问数组中包含字符串的名称来获得相同的输出。
例:
>lname
=>"Smith"
但是,我如何才能像lname
获得"史密斯"一样访问名字("詹姆斯"(?像这样:
>"First name " + ???? + ", Last name " + lname
=>"First name James, Last name Smith"
这句话是给我一个剧本来评价的:
>name = "James", lname = "Smith"
我必须得到:
=>"First name James, Last name Smith"
我无法改变任何东西。我只能在一行中输入进行评估。我尝试过失败(所有输出都正确,但脚本不接受它们(:
>"First name #{name[0]}, Last name #{name[1]}"
>"First name " + name[0] + ", Last name " + name[1]
>"First name " + name.first + ", Last name " + name.last
>"First name " + name[0] + ", Last name " + lname
我认为最好的方法是这四种中的最后一种,但要像lame
一样更改name[0]
name = "James", lname = "Smith"
这以一种有点出乎意料的方式进行评估:
name = ["James", (lname = "Smith")]
因此,name
被分配了一个"James"
和lname = "Smith"
数组(计算结果为 "Smith"
(。
因此,您已向上下文添加了 2 个值:
name = ["James", "Smith"]
lname = "Smith"
您没有访问名字的选项,只能将name
的方法作为Array
。
name[0]
和name.first
,仅此而已。
如果你只想创建两个变量,那么这个带有逗号的东西比你需要的要复杂得多。
irb(main):001:0> first_name = "James"
=> "James"
irb(main):002:0> last_name = "Smith"
=> "Smith"
irb(main):003:0> "First name " + first_name + ", Last name " + last_name
=> "First name James, Last name Smith"
irb(main):004:0>
尝试使用以下语法进行多变量赋值。
name, lname = "James", "Smith"
它会更有效,因为您不需要像 name[0]
那样通过索引获取值。您将能够使用直列变量获取这两个值
或
您可以将其写为:
name = "James"; lname = "Smith"
请注意,我使用的是分号,而不是逗号。 分号是 ruby 中的语句终止符。
现在您可以使用这些变量,例如:
> "First name " + name + ", Last name " + lname
=>"First name James, Last name Smith"
Array
方法.first
和.last
:
name = "James", "Smith"
#=> ["James", "Smith"]
name.first
#=> James
name.last
#=> Smith
鉴于您无法更改起始输入....
irb(main):001:0> name = "James", lname = "Smith"
=> ["James", "Smith"]
irb(main):002:0> fname = name.first
=> "James"
irb(main):003:0> "First name " + fname + ", Last name " + lname
=> "First name James, Last name Smith"
您还可以使用:
irb(main):004:0> name.first
=> "James"
irb(main):005:0> name.last
=> "Smith"