DC中关于list、双引号和花括号的使用区别
2012-10-31 19:21
1186 查看
在设置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,换成双引号就行了。
例如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,换成双引号就行了。
相关文章推荐
- 关于 json 单引号和双引号区别--请使用双引号
- 关于C#中数组、ArrayList与List三个对象的使用区别
- 关于 json 单引号和双引号区别--请使用双引号
- ACM-括号配对问题 ASCII码的运用|std::vector/std::list的区别与使用
- java中关于ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- #include命令的格式和功能各是什么?使用尖括号和双引号在含义上有什么区别?
- 关于 json 单引号和双引号区别--请使用双引号
- java ArrayList和LinkedList的区别与使用技巧
- 关于苹果命令sed与centos使用的区别
- 关于Gradle构建,子工程和主工程中使用compile project的区别
- Python中tuple与list的区别及tuple的使用
- 关于方法CEikonEnv::Static()方法和宏iEikonEnv的使用区别。
- IOS OC声明变量在@interface括号中与使用@property的区别
- 关于动态库 静态库 区别与使用 路径查找等内容
- Python 矩阵数组和list使用布尔值索引的区别
- Android layer-list selctor shape区别以及使用的方式
- HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map
- List,Set和Map的主要区别和使用
- 关于 C++ list 一些使用
- iOS声明变量在@interface括号中与使用@property的区别