DC中关于list、双引号和花括号的使用区别

在设置target_library或link_library的时候常常用到list、双引号和花括号,关于后两者的区别,实际就是花括号带有强制定义

例如set a 1;

set b {2 $a};

这时b就是2 $a。$a没有被替换成a被赋予的值。

如果set a 1;

set b “2 $a”

这时b就是2 1。$a被替换成了a被赋予的值。

而关于list有个特殊之处,如下:

如果set a 1;

list b 2 $a;

这时b是2 1。

而如果a是多个符号,如set a “1 2”或者set a {1 2}

list b 2 $a;

这时b是2 {1 2} ,就是说多了个花括号,而不是2 1 2,这样因为多了花括号就可能造成错误,

例如定义link_library时,因为通常都将$target_library加入link_library中,

假设set target_library {lib_a.db lib_b.db}

如果写成set link_library  [list lib_c.db $target_library]

那么link_library就成了 lib_c.db{lib_a.db lib_b.db},而不是lib_c.db lib_a.db lib_b.db,DC就会报错:Can't read link_library file 'lib_a.db lib_b.db'。所以说不要用list,换成双引号就行了。

原文地址:https://www.cnblogs.com/tshell/p/2748589.html