IM做节目,我需要大量的结合变数,其中大部分的字符串,但我有一些INT,这样做我如何组合变量?
name = "#{variable1}#{variable2}"
name2 = "#{variable2}#{variable1}"
只有两个变量it'sa简单的例子,但多数民众赞成这个想法,我试图做什么。我一个接一个地做所有可能性,即使有两个以上的变量,但有很多组合。有没有一种简单的方法来做到这一点,或者我必须一个接一个地做呢?另外,我是否需要单独编写引号还是这种方式没问题?
IM做节目,我需要大量的结合变数,其中大部分的字符串,但我有一些INT,这样做我如何组合变量?
name = "#{variable1}#{variable2}"
name2 = "#{variable2}#{variable1}"
只有两个变量it'sa简单的例子,但多数民众赞成这个想法,我试图做什么。我一个接一个地做所有可能性,即使有两个以上的变量,但有很多组合。有没有一种简单的方法来做到这一点,或者我必须一个接一个地做呢?另外,我是否需要单独编写引号还是这种方式没问题?
这是你在想什么?
variable1 = "cat"
variable2 = 9
variable3 = "lives"
arr = [variable1, variable2, variable3]
#=> ["cat", 9, "lives"]
arr.join
#=> "cat9lives"
或简单地'arr.join' – Stefan
@Stefan,有时你(比任何人都多)让我感到非常愚蠢。 :-)修正。 (读者:我以前有'arr.each_with_object(''){| obj,str | str <<“#{obj}”}')。 –
将这些变量的全部或部分放入一个数组中,这将使组合更容易。
s1 = 'a'
s2 = 'b'
s3 = 'c'
n = 8
[s1, s2, s3, n].combination(3).map(&:join)
=> ["abc", "ab8", "ac8", "bc8"]
上面的例子假设你将从数组中选择3个变量中的任何一个并计算组合。您可能需要调整该号码以满足您的需求。
编程的整个想法并不是一个接一个地去做所有的可能性。 “有很多组合”:它们看起来像我的排列组合。如果是这样的话:
var1 = "aa"
var2 = "bb"
var3 = 2
res = [var1, var2, var3].permutation.map{|perm| perm.join}
p res #=> ["aabb2", "aa2bb", "bbaa2", "bb2aa", "2aabb", "2bbaa"]
请提供示例输入和所需输出。 “我一个一个做所有可能性”还不清楚。 –
看起来类似于http://stackoverflow.com/questions/554666/ruby-merging-variables-in-to-a-string – Bohdan