全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2272 5
2016-05-23
sas adv 63题中 第39题 和 SAS adv 50题中的第20题,这两个题目很相似呢,为什么一个答案是C 一个是D?没有明白,为什么一个应用的全局宏,一个是局部宏??
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-5-25 09:18:59
先说50题中的20题

SAS中如果局部变量与全局变量同名,而且局部变量也不是  %local 定义的。 局部变量可以覆盖全局变量。

你可以尝试运行如下代码,与题中的代码比较一下结果。这段代码打印出来的就是全局的值。

%let a=cat;

%macro animal;
%local a;
%let a=dog;
%mend;

%animal
%put a is &a;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-25 09:23:24
再说 63题中的 39

%macro PRODUCT(Mv=bicycles);  --------------定义了一个局部的变量 My。这个My性质与 %local 类似,不会覆盖全局同名变量

所以,
%macro PRODUCT(Mv=bicycles);
%let Mv=clothes;   --------------------所以,这句话更改的值是 macro 的位置参数 My, 也就是局部变量的值。
%mend;


你可以尝试运行如下代码,与题中的结果比较

%let Mv=shoes;
%macro PRODUCT(Mv=bicycles);
%let Mv=clothes;
%put Mv is &Mv;
%mend;

%PRODUCT(Mv=tents)
%put Mv is &Mv;



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-26 16:39:00
rendajingguan01 发表于 2016-5-25 09:23
再说 63题中的 39

%macro PRODUCT(Mv=bicycles);  --------------定义了一个局部的变量 My。这个My性质与 ...
意思是%macro PRODUCT(Mv=bicycles) 这种方式定义的局部变量,类似于%local,所以局部宏不能覆盖全局宏,最后就显示的全局宏的结果是吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-26 17:18:10
caijiangyao1991 发表于 2016-5-26 16:39
意思是%macro PRODUCT(Mv=bicycles) 这种方式定义的局部变量,类似于%local,所以局部宏不能覆盖全局宏, ...
是这么理解的。

你可以运行代码验证。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-26 21:08:43
rendajingguan01 发表于 2016-5-26 17:18
是这么理解的。

你可以运行代码验证。
好的~谢谢啦~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群