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