【问题标题】:how do i combine variables?我如何组合变量?
【发布时间】:2017-04-24 19:21:03
【问题描述】:

我正在制作一个程序,我需要组合很多变量,其中大部分是字符串,但我有一些 int,通过这样做

name = "#{variable1}#{variable2}"
name2 = "#{variable2}#{variable1}"

这是一个只有两个变量的简单示例,但这就是我想要做的想法。我正在一一做所有的可能性,即使是两个以上的变量但有很多组合。有没有简单的方法或者我必须一个一个地做?另外,我需要单独写引号还是这样可以?

【问题讨论】:

标签: ruby variables


【解决方案1】:

这是你的想法吗?

variable1 = "cat"
variable2 = 9
variable3 = "lives"
arr = [variable1, variable2, variable3]
  #=> ["cat", 9, "lives"] 
arr.join    
  #=> "cat9lives"

【讨论】:

  • 或者干脆arr.join
  • @Stefan,有时你(比任何人都多)让我觉得自己很愚蠢。 :-) 固定的。 (读者:我之前有arr.each_with_object('') { |obj, str| str << "#{obj}" })。
【解决方案2】:

将所有或部分这些变量放入一个数组中,这样会更容易产生组合。

s1 = 'a'
s2 = 'b'
s3 = 'c'
 n = 8
[s1, s2, s3, n].combination(3).map(&:join)
=> ["abc", "ab8", "ac8", "bc8"]

以上示例假设您将从数组中选择 3 个变量中的任何一个并计算组合。您可能需要调整该数字以满足您的需要。

【讨论】:

    【解决方案3】:

    编程的整个想法并不是一个一个地做所有的可能性。 “有很多组合”:对我来说,它们看起来像是排列组合。如果是这样的话:

    var1 = "aa"
    var2 = "bb"
    var3 = 2
    
    res = [var1, var2, var3].permutation.map{|perm| perm.join}
    p res #=> ["aabb2", "aa2bb", "bbaa2", "bb2aa", "2aabb", "2bbaa"]
    

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2014-11-01
      • 1970-01-01
      • 2017-12-17
      • 2018-10-09
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多