相关疑难解决方法(0)

149
推荐指数
4
解决办法
4万
查看次数

红宝石中%w"东西"是什么?

我指的是%w运算符/构造函数/无论你怎么称呼它,像这样使用:

%w{ foo bar baz }
=> ["foo", "bar", "baz"]
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  • 那个%w"东西" 的正确名称是什么?操作?文字?构造函数?
  • 我是否使用{}s代替[]s 是否重要?
  • 还有其他类似的东西(例如,一个给你一个符号数组的东西)?
  • 它们可以嵌套(一个%w在另一个内部%w,以便创建嵌套数组)?
  • 我在哪里可以找到有关它的文档?

ruby

20
推荐指数
3
解决办法
8321
查看次数

如何改进用```引用所有数组元素的代码并返回一个包含所有引用和逗号分隔元素的字符串?

我正在使用Rails 3.2.2,我想引用所有数组元素'并返回一个包含所有引用和逗号分隔元素的字符串.这时我正在使用

['a', 'b', 'c'].collect {|x| "'#{x}'"}.join(", ")
# => "'a', 'b', 'c'"
Run Code Online (Sandbox Code Playgroud)

但我认为我可以改进上面的代码(可能是通过使用一个未知的Ruby方法,如果它存在).可能吗?

ruby arrays ruby-on-rails collect

9
推荐指数
2
解决办法
5792
查看次数

Ruby - 如果Elsif Else错误

我在这里遇到一个简单的if else链错误,我无法弄清楚发生了什么.我前几天开始学习ruby,我已经知道了一些java,并且只是想重新编写程序来更快地学习ruby.我想要计算元音和辅音.无论如何这里是我的代码......

#!/usr/bin/ruby/
alphabet = 'abcdefghijklmnopqrstuvwxyz'

array = alphabet.chars.to_a
vowel = 0
cons = 0
puts array.at(1)
for i in 0...26 
    if array.at(i) == "a"
        vowel++   
    elsif array.at(i) == 'e'
        vowel++
        elsif array.at(i) == 'i'
        vowel++
    elsif array.at(i) == 'o'
        vowel++
    elsif array.at(i) == 'u'
        vowel++
    else
        cons++
    end#end if else chain
end#end for loop

puts 'Vowel: ' + vowel.to_s
puts 'Consonants: ' + cons.to_s
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

C:/ Users/Kelan/Documents/Programming/Ruby Files/Little Programs/Alphabet.rb:11:语法错误,意外的keyword_elsif elsif array.at(i)=='e'^

C:/ Users/Kelan/Documents/Programming/Ruby Files/Little Programs/Alphabet.rb:13:语法错误,意外的keyword_elsif elsif array.at(i)=='i'^

C:/ Users/Kelan/Documents/Programming/Ruby …

ruby if-statement

5
推荐指数
2
解决办法
8819
查看次数

何时使用%w?

以下两个语句将生成相同的结果:

arr = %w(abc def ghi jkl)
Run Code Online (Sandbox Code Playgroud)

arr = ["abc", "def", "ghi", "jkl"]
Run Code Online (Sandbox Code Playgroud)

在哪些情况下应该%w使用?

在上面的例子中,我想要一个数组["abc", "def", "ghi", "jkl"].哪种理想方式:前者(带%w)或后者?

ruby arrays

4
推荐指数
1
解决办法
1619
查看次数

为什么在 Rails 中使用 %w[]?

考虑到 Rails 中的数组与类型无关,为什么要使用 %w[]?

ruby ruby-on-rails

4
推荐指数
2
解决办法
5526
查看次数

检查使用 %w(), Ruby 创建的数组中是否存在元素

我知道我可以使用 %w() 作为创建数组的快捷方式。例如,这些应该是等效的:

FOO = %w(dog, cat)
BAR = ["dog", "cat"]
Run Code Online (Sandbox Code Playgroud)

但是当我include用来检查这些数组中包含的内容时

FOO = %w(dog, cat)
BAR = ["dog", "cat"]

puts FOO.include? "dog" #false
puts BAR.include? "dog" #true
Run Code Online (Sandbox Code Playgroud)

第一个puts返回,false而第二个返回true。为什么会这样?

ruby

1
推荐指数
1
解决办法
57
查看次数

标签 统计

ruby ×7

arrays ×3

ruby-on-rails ×2

collect ×1

if-statement ×1