كيف يمكنني الانضمام إلى قائمة السلاسل في specman؟

StackOverflow https://stackoverflow.com/questions/1026012

  •  06-07-2019
  •  | 
  •  

سؤال

ولدي قائمة التي أريد لطباعة:

foo: list of string;

وأريد أن إنشاء bar السلسلة التي هي سلسلة من عناصر foo. في بيرل أود أن تفعل:

$bar = join " ", @foo;

والطريقة الوحيدة التي يمكنني أن أفكر في القيام بذلك في specman هي:

var bar: string = "";
for each in foo {
    bar = appendf("%s %s", bar, it);
};

وهذا يبدو وكأنه كان يمكن أن يكون الأداء الضعيف للغاية، لأنه نسخ bar على نفسها لكل عنصر في foo. هل هناك أي طريقة أفضل للقيام بذلك؟

هل كانت مفيدة؟

المحلول

وهناك أيضا وظيفة مخصصة لذلك:

str_join(list: list of string, separator: string) : string

وأنا متأكد من أن help str_join تعطيك تفاصيل. هناك أيضا وظائف أخرى مفيدة مثل str_match، str_split التي قد ترغب.

وكما تلميح إضافية، ربما يجب عليك طباعة نفسك <م> ه اللغة مرجع سريع ، انظر> وأ href = "http://www.cadence.com/Community/blogs/fv/archive/ 2009/06/19 /-specman إرسال لنا-اقتراحات مقابل استكمال رأس الإلكترونية السريعة مرجعية card.aspx "يختلط =" نوفولو noreferrer "> http://www.cadence.com/Community/blogs /fv/archive/2009/06/19/send-us-suggestions-for-updating-the-e-specman-quick-reference-card.aspx .

نصائح أخرى

وأثناء كتابة السؤال الذي تعثرت عبر طريقة to_string(). يمكنني استخدام:

var bar: string = foo.to_string();

وهذا هو ما يعادل في بيرل:

$bar = join "\n", @foo;

إذا أريد استخدام المساحات يمكنني استخدام:

var bar: string = str_replace(foo.to_string(), "\n", " ");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top