我在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
获取“Smith”的方式访问名字(“James”)?类似的东西:
>"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
我认为最好的方法是这四种方法中的最后一种方法,但更改name[0]
用于lame
之类的同类访问。
答案 0 :(得分:0)
如果您只想创建两个变量,那么使用逗号的内容会比您需要的更复杂。
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>
答案 1 :(得分:0)
尝试使用以下语法进行多个变量赋值。
name, lname = "James", "Smith"
它会更高效,因为您不需要像name[0]
这样的索引获取值。您将能够使用直接变量
或强>
你可以把它写成:
name = "James"; lname = "Smith"
请注意我使用的是分号而不是逗号。分号是ruby中的语句终止符。
现在您可以使用以下变量:
> "First name " + name + ", Last name " + lname
=>"First name James, Last name Smith"
答案 2 :(得分:0)
您可以使用Array
方法.first
和.last
:
name = "James", "Smith"
#=> ["James", "Smith"]
name.first
#=> James
name.last
#=> Smith
答案 3 :(得分:0)
鉴于你无法改变起始输入......
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"
答案 4 :(得分: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
,这就是全部。