2016-11-07 10 views
0

文字列変数のリストがありますが、これらをすべて配列に割り当てる必要がありますが、リストはあまりにも多いので、forループを使用して割り当てることは可能です。forループを使用して配列に文字列変数を代入する

var class_1 = "some description.."; 
var class_2 = "some description.."; 
var class_3 = "some description.."; 
var class_4 = "some description.."; 
var class_5 = "some description.."; 
. 
. 
var class_100 = "some description.."; 

var classes = []; 

for(var i = 0; i < 100; i++){ 

//loop string variables to array  

} 

100個の変数を手動で配列に割り当てることはできないと思います。誰でも技術は知っていますか?ありがとうございました。

[更新] SystemVerilogの構文では、私はその言語に慣れていないので、私はJavascriptでそのアイデアを提示する必要があります。このような

+1

のためのSystemVerilogクラスのオブジェクトを使用することです_100個の変数_?あなたは最初にそれをソートする必要があります... –

+1

'class_1'の代わりに.soを使うことができます。' class_ [1] ' –

+0

@Fast Snailこれらの変数はあらかじめ定義された変数なので、どうすれば配列に移動できますか? ? – helloworld1234

答えて

0

何か:

var class_1 = "some description.."; 
var class_2 = "some description.."; 
var class_3 = "some description.."; 
var class_4 = "some description.."; 
var class_5 = "some description.."; 

var class_100 = "some description.."; 

var classes = []; 
for(var i = 0; i < 100; i++){ 

classes.push(window['class_'+i]) 

} 
+0

応答ありがとう、それはjavascriptの構文ですか? SystemVerilogではどうですか? – helloworld1234

+0

@ helloworld1234元の投稿構文 - **は** SystemVerilogですか、それともJavaScriptですか? – aring

0

あなたは100個の変数を持っていますか?最初にそれを分けてください。

このコメントには多少の真実があると思います。しかし、あなたの質問に答えるために:あなたの変数はあなた上の例と同じ命名規則に従ってください、あなたはそのような配列値と事前に定義された変数を割り当てることができますと仮定:

var a = [] 
for(var i = 0; i < num_vars; i++){ 
    var key = 'class_' + (i + 1) 
    if (this[key]) 
     a.push(this[key]) 
} 
0

をあなたはおそらくevalを使用することができます。このような何か:

for (var i = 0; i < 100; i++) { 
    var toEval = "classes.push(class_" + i + ")"; 
    eval(toEval); 
} 
+0

はSystemVerilog言語でこれは? – helloworld1234

1

手動で配列の要素に各変数を割り当てずに独立して名前付き変数のリストから値の配列を構築するためのSystemVerilogでの方法はありません。

classes[0] = class_0; 
classes[1] = class_1; 
classes[2] = class_2; 
... 

変数名に使用される識別子を使用して、正確な名前による場合を除いて、識別子にアクセスすることはできませんので、数列は全く重要である持っているという事実。
これを自動化する場合は、文字列変数の定義方法を変更する必要があります。人々はすでに掲載しているように、これはおそらく、連想配列を使用して、そもそものアレイを使用してモデル化されなければならない:

string classes[string]; 
classes["class_1"] = "some description.."; 
classes["class_2"] = "some description.."; 
classes["class_3"] = "some description.."; 

foreach(classes[name]) 
     // do something with classes[name] 

別のオプションは、あなたが持っている各変数

class stringvar; 
    string m_name; 
    static stringvar list[$]; 
    function new(string name); 
    m_name = name; 
    list.push_back(this); 
    endfunction 
endclass 

stringvar class_0 = new("some description.."); 
stringvar class_1 = new("some description.."); 
stringvar class_2 = new("some description.."); 
... 
foreach(stringvar::list[item]) 
    // do something with item.m_name 
関連する問題