Ruby中的多个独立变量案例

时间:2017-02-06 20:08:31

标签: ruby

我正在研究一个随机滚轮,其中需要为一个集合滚动5个变量,然后根据每个变量打印一个字符串,但具有完全相同的条件但是彼此独立。然后输出将打印这些字符串的列表。

而不是写作:

if object_id('tempdb..#tempValuePair') is not null drop table #tempValuePair
select
'Color' as Name,
'Red' as Value
into #tempValuePair
union all
select
'Age','43'
union all
select
'Mood','Happy'



DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)

--Get distinct values of the PIVOT Column 
SELECT @ColumnName= ISNULL(@ColumnName + ',','') 
       + QUOTENAME(Name)
FROM (SELECT DISTINCT Name FROM #tempValuePair) AS Courses

--Prepare the PIVOT query using the dynamic 
SET @DynamicPivotQuery = 
  N'SELECT ' + @ColumnName + '
    FROM #tempValuePair
    PIVOT(MAX(Value) 
          FOR Name IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery

有没有办法将案例写成数组中的多个独立变量或类似的东西,所以我只需要写一次条件?如果用户不幸的话,可能会有多达4个这样的集合,并且我不希望必须写出相同的条件多达20次,因为在我的特定情况下,实际上有29个条件每个案例。

1 个答案:

答案 0 :(得分:1)

听起来你只需要将一个逻辑封装在一个可以多次应用的方法中。你有一个简化的例子,但我会在这里提供一个稍微强大的例子,让你走上正确的思路:

tableData = [['apples','oranges','cherries','banana'],
             ['Alice','Bob','Carol','David'],
             ['dogs','cats','moose','goose']]

def printTable():
    colWidths=[0]*len(tableData)
    for i in range(len(tableData)):
        for x in range(len(tableData[i])):
            if colWidths[i]<len(tableData[i][x]):
                colWidths[i]=len(tableData[i][x])
    for x in range(len(tableData[i])):
        print(tableData[0][x].rjust(colWidths[0]+1) + tableData[1][x].rjust(colWidths[1]+1) + tableData[2][x].rjust(colWidths[2]+1))

printTable()