SET指令
SET /A expression
SET /P variable=[promptString]
, -表達式分隔設定
如果您使用任何邏輯或取余操作符, 您需要將表達式字元串用引號擴起來。在表達式中的任何非數字字元串鍵作為環境變數名稱,這些環境變數名稱的值已在使用前轉換成數字。如果指定了一個環境變數名稱,但未在當前環境中定義,那么值將被定為零。這使您可以使用環境變數值做計算而不用鍵入那些 % 符號來得到它們的值。如果 SET /A 在命令腳本外的命令行執行的,那么它顯示該表達式的最後值。該分配的操作符在分配的操作符左邊需要一個環境變數名稱。除十六進制有 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=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo If you see this, it worked
)
不會顯示訊息,因為在讀到第一個 IF 語句時,BOTH IF 語句中的 %VAR% 會被代替;原因是: 它包含 IF 的文體,IF 是一個複合語句。所以,複合語句中的 IF 實際上是在比較 "before" 和"after",這兩者永遠不會相等。同樣,以下這個例子也不會達到預期效果:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
原因是,它不會在目錄中建立一個檔案列表,而只是將LIST 變數設成找到的最後一個檔案。這也是因為 %LIST% 在FOR 語句被讀取時,只被擴充了一次;而且,那時的 LIST 變數是空的。因此,我們真正執行的 FOR 循環是:
for %i in (*) do set LIST= %i
這個循環繼續將 LIST 設成找到的最後一個檔案。
延遲環境變數擴充允許您使用一個不同的字元(驚嘆號)在執行時間擴充環境變數。如果延遲的變數擴充被啟用,可以將上面例子寫成以下所示,以達到預期效果:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo If you see this, it worked
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
如果命令擴展名被啟用,有幾個動態環境變數可以被擴展,但不會出現在 SET 顯示的變數列表中。每次變數數值被擴展時,這些變數數值都會被動態計算。如果用戶用這些名稱中任何一個定義變數,那個定義會替代下面描述的動態定義:
%CD% - 擴展到當前目錄字元串。
%DATE% - 用跟 DATE 命令同樣的格式擴展到當前日期。
%TIME% - 用跟 TIME 命令同樣的格式擴展到當前時間。
%RANDOM% - 擴展到 0 和 32767 之間的任意十進制數字。
%ERRORLEVEL% - 擴展到當前 ERRORLEVEL 數值。
%CMDEXTVERSION% - 擴展到當前命令處理器擴展名版本號。
%CMDCMDLINE% - 擴展到調用命令處理器的原始命令行。
補充技巧
set /A 開關可以支持單行定義多個數字變數。其間只需用逗號隔開。
例如:
set /a a=1 set /a b=1+1
可以簡寫為:
set /a a=1,b=1+1
更加簡化,繞過變數延時:
set/a c=(b+=p=1)*100/(a=2000)+(n=0)
FOR等字塊中注意事項")"的轉義:
for /l %%1 in (1,1,2) do (
set/a a=(2+5^)*3
set/a "c=(b+=p=1)*100/(a+=2000)+(n=0)"
)
在 DOS (cmd) 里Set /p 命令會創建一個輸入區域,按下回車時,將該輸入區域的字元串返回給變數。通常和 If 語句使用。
VB Set
將對象引用賦給變數或屬性或在代碼中創建一個控制項到相應窗體上。
語法
Set objectvar = { [ New] objectexpression | Nothing}
Set語句的語法包含下面部分:
說明
為確保合法, objectvar必須是與所賦對象相一致的對象類型。
Dim、Private、Public、ReDim以及 Static語句都只聲明了引用對象的變數。在用 Set語句將變數賦為特定對象之前,該變數並沒有引用任何實際的對象。
下面的示例說明了如何使用 Dim來聲明Form1類型的數組。Form1實際上還沒有實例。然後使用 Set將新創建的Form1的實例的引用賦給myChildForms變數。在 MDI 應用程式中可以使用這些代碼來創建子窗體。
Dim myChildForms(1 to 4) As Form1 Set myChildForms(1) = New Form1 Set myChildForms(2) = New Form1 Set myChildForms(3) = New Form1 Set myChildForms(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(E e)
如果 set 中尚未存在指定的元素,則添加此元素(可選操作)。
boolean addAll(Collectionc)
如果 set 中沒有指定 collection 中的所有元素,則將其添加到此 set 中(可選操作)。
void clear()
移除此 set 中的所有元素(可選操作)。
boolean contains(Object o)
如果 set 包含指定的元素,則返回 true。
boolean containsAll(Collectionc)
如果此 set 包含指定 collection 的所有元素,則返回 true。
boolean equals(Object o)
比較指定對象與此 set 的相等性。
int hashCode()
返回 set 的哈希碼值。
boolean isEmpty()
如果 set 不包含元素,則返回 true。
Iterator iterator()
返回在此 set 中的元素上進行疊代的疊代器。
boolean remove(Object o)
如果 set 中存在指定的元素,則將其移除(可選操作)。
boolean removeAll(Collectionc)
移除 set 中包含在指定 collection 中的元素(可選操作)。
boolean retainAll(Collectionc)
僅保留 set 中包含在指定 collection 中的元素。
int size()
返回 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([0 12 -0.5 1]) %設定坐標軸範圍
grid on
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('Bessel Functions') %添加標題
[y,ix]=min(y1); %找到y1的最小值以及改值的下標,賦給y和ix
text(x(ix),y,'First Min \rightarrow','HorizontalAlignment','right') %插入文本
Flash Set
允許隱式設定與某些對象關聯的屬性,這些對象基於外部類檔案中定義的類。通過使用隱式設定方法,您可以不必直接訪問對象屬性就改變其屬性值。隱式 get/set 方法是對 ActionScript 1.0 中 Object.addProperty() 方法的句法簡化。
參數
property:String ― 用來引用 set 要訪問的屬性的詞;該值必須與在相應的 get 命令中使用的值相同
可用性
最低ActionScript 腳本編輯環境:ActionScript 2.0
最低播放器環境:Flash Player 6
示例
下面的示例創建一個 Login 類,該類演示如何使用 set 關鍵字設定私有變數:
在與 Login。as 位於同一目錄中的 FLA 或 AS 檔案中,在時間軸的第 1 幀中輸入以下 ActionScript:
在下面的示例中,在跟蹤值時執行 get 函式。set 函式僅在您向它傳遞值時才觸發,如下行所示:
XMLUI.set
修改當前 XMLUI 對話框的指定屬性的值。
public static set(name:String, value:String) : Void
可用性:
ActionScript 1.0、Flash Player 7
參數
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 int size() :返回set中元素的數目,如果set包含的元素數大於Integer.MAX_VALUE,返回Integer.MAX_VALUE;
public boolean isEmpty() :如果set中不含元素,返回true ;
public boolean contains(Object o) :如果set包含指定元素,返回true ;
public Iterator iterator() : 返回set中元素的疊代器,元素返回沒有特定的順序,除非set提高該保證的某些類的實例 ;
public boolean add(Object o) :如果set中不存在指定元素,則向set加入 ;
public boolean remove(Object o) :如果set中存在指定元素,則從set中刪除 ;
public boolean removeAll(Collection c) :如果set包含指定集合,則從set中刪除指定集合的所有元素 ;
public void clear() :從set中刪除所有元素;