set,命令提示符中的set指令。

在所有构造方法以及add、equals和hashCode方法的协定上,Set接口还加入了其他规定,这些规定超出了从Collection接口所继承的内容。出于方便考虑,它还包括了其他继承方法的声明(这些声明的规范已经专门针对Set接口进行了修改,但是没有包含任何其他的规定)。对这些构造方法的其他规定是(不要奇怪),所有构造方法必须创建一个不包含重复元素的set(正如上面所定义的)。注:如果将可变对象用作set元素,那么必须极其小心。如果对象是set中某个元素,以一种影响equals比较的方式改变对象的值,那么set的行为就是不确定的。此项禁止的一个特殊情况是不允许某个set包含其自身作为元素。

外文名

set

所属学科

计算机

SET指令

SET/Aexpression

SET/Pvariable=[promptString]

,-表达式分隔符

如果您使用任何逻辑或取余操作符,您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些%符号来得到它们的值。如果SET/A在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称[1]。除十六进制有0x前缀,八进制有0前缀的,数字值为十进位数字。因此,0x12与18和022相同。请注意八进制公式可能很容易搞混:08和09是无效的数字,因为8和9不是有效的八进制位数。

/P命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的promptString。promptString可以是空的。

环境变量替换已如下增强:

%PATH:str1=str2%

会扩展PATH环境变量,用"str2"代替扩展结果中的每个"str1"。要有效地从扩展结果中删除所有的"str1","str2"可以是空的。"str1"可以以星号打头;在这种情况下,"str1"会从扩展结果的开始到str1剩余部分第一次出现的地方,都一直保持相配。

也可以为扩展名指定子字符串。

%PATH:~10,5%

会扩展PATH环境变量,然后只使用在扩展结果中从第11个(偏移量10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。

%PATH:~-10%

会提取PATH变量的最后十个字符。

%PATH:~0,-2%

会提取PATH变量的所有字符,除了最后两个。

终于添加了延迟环境变量扩充的支持。该支持总是按默认值被停用,但也可以通过CMD.EXE的/V命令行开关而被启用/停用。

请参阅CMD/?

考虑到读取一行文本时所遇到扩充的限制时,延迟环境变量扩充是很有用的,而不是执行的时候。以下例子说明直接变量扩充的问题:

set VAR=beforeif"%VAR%"=="before"(set VAR=afterif"%VAR%"=="after"@echoIfyouseethis,itworked)

不会显示消息,因为在读到第一个IF语句时,BOTHIF语句中的%VAR%会被代替;原因是:它包含IF的文体,IF是一个复合语句。所以,复合语句中的IF实际上是在比较"before"和"after",这两者永远不会相等。同样,以下这个例子也不会达到预期效果:

set LIST=for%iin(*)do set LIST=%LIST%%iecho%LIST%

原因是,它不会在目录中建立一个文件列表,而只是将LIST变量设成找到的最后一个文件。这也是因为%LIST%在FOR语句被读取时,只被扩充了一次;而且,那时的LIST变量是空的。因此,我们真正执行的FOR循环是:

for%iin(*)do set LIST=%i

这个循环继续将LIST设成找到的最后一个文件。

延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果:

set VAR=before

if"%VAR%"=="before"(

setVAR=after

if"!VAR!"=="after"@echo If you see this,it worked

)

set LIST=

for%iin(*)do set LIST=!LIST!%i

echo%LIST%

如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在SET显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个定义变量,那个定义会替代下面描述的动态定义:

%CD%-扩展到当前目录字符串。

%DATE%-用跟DATE命令同样的格式扩展到当前日期。

%TIME%-用跟TIME命令同样的格式扩展到当前时间。

%RANDOM%-扩展到0和32767之间的任意十进制数字。

%ERRORLEVEL%-扩展到当前ERRORLEVEL数值。

%CMDEXTVERSION%-扩展到当前命令处理器扩展名版本号。

%CMDCMDLINE%-扩展到调用命令处理器的原始命令行。

补充技巧

set/A开关可以支持单行定义多个数字变量。其间只需用逗号隔开。

例如:

set/aa=1set/ab=1+1

可以简写为:

set/aa=1,b=1+1

更加简化,绕过变量延时:

set/ac=(b+=p=1)*100/(a=2000)+(n=0)

FOR等字块中注意事项")"的转义:

for/l%%1in(1,1,2)do(

set/aa=(2+5^)*3

set/a"c=(b+=p=1)*100/(a+=2000)+(n=0)"

)

在DOS(cmd)里Set/p命令会创建一个输入区域,按下回车时,将该输入区域的字符串返回给变量。通常和If语句使用。

VBSet

将对象引用赋给变量或属性或在代码中创建一个控件到相应窗体上。

语法

Setobjectvar={[New]objectexpression|Nothing}

Set语句的语法包含下面部分:

说明

为确保合法,objectvar必须是与所赋对象相一致的对象类型。

Dim、Private、Public、ReDim以及Static语句都只声明了引用对象的变量。在用Set语句将变量赋为特定对象之前,该变量并没有引用任何实际的对象。

下面的示例说明了如何使用Dim来声明Form1类型的数组。Form1实际上还没有实例。然后使用Set将新创建的Form1的实例的引用赋给myChildForms变量。在MDI应用程序中可以使用这些代码来创建子窗体。

Dim myChildForms(1to4)AsForm1SetmyChildForms(1)=New Form1SetmyChildForms(2)=New Form1SetmyChildForms(3)=New Form1SetmyChildForms(4)=New Form1

通常,当使用Set将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在Set语句中使用New关键字,那么实际上就会新建一个该对象的实例。

简介

一个不包含重复元素的collection。更确切地讲,set不包含满足e1.equals(e2)的元素对e1和e2,并且最多包含一个null元素。正如其名称所暗示的,此接口模仿了数学上的set抽象。

在所有构造方法以及add、equals和hashCode方法的协定上,Set接口还加入了其他规定,这些规定超出了从Collection接口所继承的内容。出于方便考虑,它还包括了其他继承方法的声明(这些声明的规范已经专门针对Set接口进行了修改,但是没有包含任何其他的规定)。对这些构造方法的其他规定是(不要奇怪),所有构造方法必须创建一个不包含重复元素的set(正如上面所定义的)。注:如果将可变对象用作set元素,那么必须极其小心。如果对象是set中某个元素,以一种影响equals比较的方式改变对象的值,那么set的行为就是不确定的。此项禁止的一个特殊情况是不允许某个set包含其自身作为元素。

常用的几个方法:

boolean add(Ee)

如果set中尚未存在指定的元素,则添加此元素(可选操作)。

boolean addAll(Collectionc)

如果set中没有指定collection中的所有元素,则将其添加到此set中(可选操作)。

void clear()

移除此set中的所有元素(可选操作)。

boolean contains(Objecto)

如果set包含指定的元素,则返回true。

boolean containsAll(Collectionc)

如果此set包含指定collection的所有元素,则返回true。

boolean equals(Objecto)

比较指定对象与此set的相等性。

int hashCode()

返回set的哈希码值。

boolean isEmpty()

如果set不包含元素,则返回true。

Iterator iterator()

返回在此set中的元素上进行迭代的迭代器。

boolean remove(Objecto)

如果set中存在指定的元素,则将其移除(可选操作)。

boolean removeAll(Collectionc)

移除set中包含在指定collection中的元素(可选操作)。

boolean retainAll(Collectionc)

仅保留set中包含在指定collection中的元素。

intsize()

返回set中的元素数(其容量)。

Object[]toArray()

返回一个包含set中所有元素的数组。

T[]

toArray(T[]a)

返回一个包含此set中所有元素的数组;返回数组的运行时类型是指定数组的类型。

matlab

定义

1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。例如,LineStyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-'、':'、'-.'、'--'或'none'。

2.属性的操作

set函数的调用格式为:

set(句柄,属性名1,属性值1,属性名2,属性值2,…)

例子

clear

x=0:0.2:12;

y1=bessel(1,x);

y2=bessel(2,x);

y3=bessel(3,x);

h=plot(x,y1,x,y2,x,y3);

set(h,{'LineWidth'},{2;5;8})%set(h,{'LineWidth'},{2})==set(h,'LineWidth',2),将所有线宽设置为2

set(h,{'Color'},{'r';'g';'b'},{'LineStyle'},{'--';':';'-.'})%设置颜色和线宽

axis([012-0.51])%设置坐标轴范围

gridon

X=0:1:12;

Y=-0.5:0.25:1;

set(gca,'xtick',X,'ytick',Y)%设置网格的显示格式,gca获取当前figure的句柄

set(xlabel('Time'),'FontSize',12,'Color','r')

y=ylabel('Amplitude');

set(y,'FontSize',12,'Color','g')

legend(h,'First','Second','Third')%添加图例

title('BesselFunctions')%添加标题

[y,ix]=min(y1);%找到y1的最小值以及改值的下标,赋给y和ix

text(x(ix),y,'FirstMinightarrow','HorizontalAlignment','right')%插入文本

FlashSet

允许隐式设置与某些对象关联的属性,这些对象基于外部类文件中定义的类。通过使用隐式设置方法,您可以不必直接访问对象属性就改变其属性值。隐式get/set方法是对ActionScript1.0中Object.addProperty()方法的句法简化。

参数

property:String―用来引用set要访问的属性的词;该值必须与在相应的get命令中使用的值相同

可用性

最低ActionScript脚本编辑环境:ActionScript2.0

最低播放器环境:FlashPlayer6

示例

下面的示例创建一个Login类,该类演示如何使用set关键字设置私有变量:

在与Login。as位于同一目录中的FLA或AS文件中,在时间轴的第1帧中输入以下ActionScript:

在下面的示例中,在跟踪值时执行get函数。set函数仅在您向它传递值时才触发,如下行所示:

XMLUI.set

修改当前XMLUI对话框的指定属性的值。

publicstaticset(name:String,value:String):Void

可用性:

ActionScript1.0、FlashPlayer7

参数

name:String―要修改的XMLUI属性的名称。

value:String―指定的属性将要被设置为的值。

java中的类

1、简介

Java中的Set类继承了Conllection类,是一种集合类。Set类中不允许重复对象,而且其中的对象不按特定的方式排序。

Set类主要有以下几个实现类。(1)HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。Java.util.HashSet类实现了Java.util.Set接口,它不允许出现重复元素;不保证和政集合中元素的顺序;允许包含值为null的元素,但最多只能有一个null元素。(2)LinkedHashSet集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序,保持元素的添加顺序。LinkedHashSet在迭代访问Set中的全部元素时,性能比HashSet好,但是插入时性能稍微逊色于HashSet。(3)TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。TreeSet描述的是Set的一种变体——可以实现排序等功能的集合,它在讲对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中。

2、常用方法

按照定义,Set接口继承Collection接口,而且它不允许集合中存在重复项。所有原始方法都是现成的,没有引入新方法。具体的Set实现类依赖添加的对象的equals()方法来检查等同性。

各个方法的作用描述:

public intsize():返回set中元素的数目,如果set包含的元素数大于Integer.MAX_VALUE,返回Integer.MAX_VALUE;

public boolean isEmpty():如果set中不含元素,返回true;

public boolean contains(Objecto):如果set包含指定元素,返回true;

public Iterator iterator():返回set中元素的迭代器,元素返回没有特定的顺序,除非set提高该保证的某些类的实例;

public boolean add(Objecto):如果set中不存在指定元素,则向set加入;

public boolean remove(Objecto):如果set中存在指定元素,则从set中删除;

public boolean removeAll(Collectionc):如果set包含指定集合,则从set中删除指定集合的所有元素;

public void clear():从set中删除所有元素;

数据类型

Uninterpreted

位元 ▪字节 ▪Trit ▪Tryte

▪Word

数值

▪整数 ▪Fixed-point ▪浮点数 ▪Rational

▪Complex ▪Bignum ▪Interval

文本

▪字符 ▪字符串

指针

▪物理地址 ▪Reference

组合

▪Algebraicdatatype ▪数组 ▪Associativearray ▪Class

▪List ▪Object ▪Optiontype ▪Product

▪Record ▪Set ▪Union

其他

▪布尔型 ▪Bottomtype ▪Collection ▪Enumeratedtype

▪异常 ▪First-classfunction ▪Opaquedatatype ▪Recursivedatatype

▪信号标 ▪字串流 ▪Toptype ▪Typeclass

▪Unittype ▪Void

相关议题

▪抽象资料型别 ▪数据结构 ▪Interface ▪Kind

▪原始型别 ▪Subtyping ▪Template ▪Typeconstructor

▪Parametricpolymorphism