二求晶、AppleScript的數(shù)據(jù)類型

  • 目錄
  • 1.布爾類型 Boolean
  • 2.數(shù)字 Number
  • 3.字符串 String
  • 4.列表 List
  • 5.記錄 Record

1.布爾類型 Boolean

True 和 False (不區(qū)分大小寫)

set a to true
set b to false

2.數(shù)字 Number

set x to 25
set y to 4321.234

可以使用算數(shù)運(yùn)算符

+ 加
- 減
* 乘
/ 除
^ 乘方
set x to 10.0
set y to x ^ 3

腳本編輯器會(huì)將結(jié)果顯示在下半部分的結(jié)果區(qū)中级及。


43EF8341-1A12-4611-9247-9C24F960E7BA.png

數(shù)字基本上分為兩類:整數(shù)(intergers)和分?jǐn)?shù)(fractional numbers)。整數(shù)用來計(jì)數(shù),比如循環(huán)次數(shù)陪蜻。分?jǐn)?shù)或者稱作實(shí)數(shù) (real numbers,簡寫作reals)用來計(jì)算例如棒球的擊中率贱鼻。整數(shù)和實(shí)數(shù)都可以是負(fù)數(shù)宴卖。


3.字符串 String

字符串必須放到雙引號(hào)里


20BAA94B-CA67-46AF-BAA1-9F06E4E8C4C1.png

結(jié)果區(qū)中顯示的字符串也是帶有引號(hào)的。帶有引號(hào)的就表示是字符串邻悬。

拼接字符串

可以通過 '&' 符號(hào)進(jìn)行拼接

set x to "abc"
set y to "def"
set z to x & "連接" & y
DABB84A1-7FC8-4B3C-8E9D-3E2FC421FF70.png

查看字符串長度
length of / the length of

set theLength to the length of "I'm Rose."
4D3A5482-C665-4317-8C15-91D12FD6A2DD.png

length 為關(guān)鍵字症昏,空格也會(huì)占用字符串的長度。

如果字符串中要包含雙引號(hào)父丰,則需要使用轉(zhuǎn)義字符反斜杠 ''

set exampleString to "She said: \"Hi, I'm Rose.\""

強(qiáng)制類型轉(zhuǎn)換

set a to "15" as number
5F4CA888-3EFE-4E81-B82E-07CEE045DCBE.png

結(jié)果中 15不帶雙引號(hào)肝谭,變成了數(shù)字

set a to 15 as string
7EE95B76-3FED-4E9E-8345-F23703AC53EE.png

結(jié)果中15變成了字符串。

set a to "1.99" as real
48848958-4D48-4B5A-B55F-86BB73500BFA.png
set a to "1.99" as integer
918EF52B-A476-4E8D-B14E-DAC7E7E89664.png

integer 為整數(shù)蛾扇,精度丟失


4.列表 List

相當(dāng)于OC中的數(shù)組攘烛。

set exampleList to {123.4, 567, "Rose", "Hello world"}
BA6B91D4-0EBF-4FDB-BE1B-2E26C7E27C2D.png

拼接數(shù)組

和string一樣,通過 '&' 符號(hào)拼接

set a to {"a"}
set b to {"b"}
set c to {"c"}
set d to a & b & c
413ADF2A-ADBE-4C57-AE72-62E688CD3FB7.png

追加元素

set a to {"a"}
set c to a & "b"
FAB959A7-8B02-4039-A620-0E0188698FBD.png

取代元素

set listA to {"a", "b"}
set item 2 of listA to "c"
get listA
86434645-00C0-44ED-985B-F003FEFFE449.png

將第二個(gè)元素屁桑,變成了 "c"

set the second item of listA to "c"
set the 2nd item of listA to "c"

也是同樣的作用医寿。

取數(shù)組中的某個(gè)元素

set listA to {"a", "b"}
set secondItem to item 2 of listA
95CE6C5A-8F4D-470C-9DD5-54DF0F8CA501.png

取最后一個(gè)元素

set listA to {"a", "b"}
set lastItem to the last item of listA

或者

set listA to {"a", "b"}
set lastItem to item -1 of listA
D91DA630-C38E-494F-8C0E-85BCE55CBEEE.png

取列表中的一個(gè)范圍的元素

set listA to {"a", "b", "c", "d", "e", "f", "g", "h"}
set rangeItems to items 2 through 5 of listA

取第二個(gè)到第五個(gè)元素,并不是5個(gè)長度的


EEAC7227-FF4E-4696-A884-21DAD81CCD30.png

注意:如果使用items 5 through 2 of listA蘑斧,字面意思是從第五個(gè)到第二個(gè)靖秩,但實(shí)際上取的仍是從第二個(gè)到第五個(gè),并不會(huì)反向的取出竖瘾。

使用列表中的元素反向

set reversedList to reverse of {3, 2, 1}
5B9C990D-876F-4867-AA66-3D56326EA346.png

計(jì)算列表元素個(gè)數(shù)
可以通過以下指令得到

set listLength to the length of {"a","b","c"}
set listLength to the count of {"a","b","c"}

強(qiáng)制類型轉(zhuǎn)換

set a to "a"
set b to a as list
E68D74DD-7C7D-4549-A5EC-A2AE283919FE.png

追加元素時(shí)沟突,第一個(gè)是列表才能拼接

set a to {"a"}
set c to a & "b"

如果位置換過來,那么就會(huì)變成了拼接字符串

set a to {"a"}
set c to "b" & a
D1C4AFE5-E958-4165-ADA0-AD5E86513981.png

所以需要對"b"類型轉(zhuǎn)換

set a to {"a"}
set c to ("b" as list) & a
60F2996F-C706-4548-9F75-F38D958184C7.png

追加元素還可以使用

set listA to {1, 2, 3, 4}
set the end of listA to 5
get listA
1D24A980-6217-4CAA-AC25-1C836B50CFD1.png

將字符串的每個(gè)字母組成列表

set itemized to every character of "I'm Rose."
C827F79B-F309-4904-8A33-185C9EFE61E0.png

通過某個(gè)字符分割字符串
通過AppleScript's text item delimiters來實(shí)現(xiàn),將其設(shè)置為空格 " ",使用完之后還需要將其改回原來的值

set myString to "Hi there."
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set myList to every text item of myString
set AppleScript's text item delimiters to oldDelimiters
get myList
85B81A3E-36E4-459D-AAD4-9841FB1A1FAD.png

列表轉(zhuǎn)為字符串

set listA to {"a", "b", "c", "d", "e", "f", "g", "h"}
set listA to listA as string
B0BE0F87-B0C3-4854-99C9-B94587340ED3.png

通過若干字符拼接字符串

set listA to {"a", "b", "c", "d", "e", "f", "g", "h"}
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "~~"
set myList to listA as string
set AppleScript's text item delimiters to oldDelimiters
get myList
BDF08AD2-7B58-41D4-BFCB-5F9855D70D58.png

5. 記錄 record

相當(dāng)于OC中的字典捕传。

set friend to {age:10, nickName:"張三"}
445F9981-1CE1-4871-B902-64BE1575583D.png

記錄中的單元叫做屬性(property)惠拭,不是元素(item)。不能通過item來取出數(shù)據(jù)庸论。

查看記錄中包含多少個(gè)屬性

set friend to {age:10, nickName:"張三"}
set propertyCount to count of friend
F2A0E040-B15F-4A9C-8473-B0CE5653A3B8.png

取出記錄中的某個(gè)key對應(yīng)的值

set friend to {age:10, nickName:"張三"}
set temp to age of friend
1A47A77F-438C-4098-9535-400365214E7B.png

深淺拷貝
當(dāng)我們將數(shù)據(jù)直接賦值給一個(gè)變量時(shí)职辅,結(jié)果不會(huì)隨age的改變而改變

set age to 30
set resultAge to age
set age to 50
get resultAge
63EDBBF6-79C2-491F-AB60-FDB50AB644B2.png

但當(dāng)我們將數(shù)據(jù)傳入記錄或者列表時(shí),結(jié)果如下

set recordA to {age:30}
set resultA to recordA
set age of recordA to 50
get resultA
D4BC30FE-4366-469E-8CA8-32834DC8C98E.png

age 會(huì)隨之改變聂示,為了保證數(shù)據(jù)被復(fù)制域携,可以使用copy指令

set recordA to {age:30}
copy recordA to resultA
set age of recordA to 50
get resultA
CD56B063-BF63-47B8-833D-58EE25045D6E.png
  • 注意:
  • AppleScript中的變量名由一個(gè)詞組成,中間不能留有空格鱼喉。不能以數(shù)字開頭秀鞭,但數(shù)字可以在變量名中出現(xiàn)趋观。命名允許使用下劃線“_”。
  • 賦值時(shí)使用set to 語句: set 變量名 to 變量值
  • AppleScript保留的標(biāo)識(shí)符锋边,不能被用戶定義為自己的標(biāo)識(shí)符皱坛。AppleScript官方文檔關(guān)鍵字說明
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市豆巨,隨后出現(xiàn)的幾起案子剩辟,更是在濱河造成了極大的恐慌,老刑警劉巖搀矫,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹沪,死亡現(xiàn)場離奇詭異,居然都是意外死亡瓤球,警方通過查閱死者的電腦和手機(jī)融欧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卦羡,“玉大人噪馏,你說我怎么就攤上這事÷潭” “怎么了欠肾?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拟赊。 經(jīng)常有香客問我刺桃,道長,這世上最難降的妖魔是什么吸祟? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任瑟慈,我火速辦了婚禮,結(jié)果婚禮上屋匕,老公的妹妹穿的比我還像新娘葛碧。我一直安慰自己,他們只是感情好过吻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布进泼。 她就那樣靜靜地躺著,像睡著了一般纤虽。 火紅的嫁衣襯著肌膚如雪乳绕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天逼纸,我揣著相機(jī)與錄音刷袍,去河邊找鬼。 笑死樊展,一個(gè)胖子當(dāng)著我的面吹牛呻纹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播专缠,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雷酪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涝婉?” 一聲冷哼從身側(cè)響起哥力,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墩弯,沒想到半個(gè)月后吩跋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渔工,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年锌钮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片引矩。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梁丘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旺韭,到底是詐尸還是另有隱情氛谜,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布区端,位于F島的核電站值漫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏织盼。R本人自食惡果不足惜杨何,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悔政。 院中可真熱鬧晚吞,春花似錦、人聲如沸谋国。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芦瘾。三九已至捌蚊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間近弟,已是汗流浹背缅糟。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祷愉,地道東北人窗宦。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓赦颇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赴涵。 傳聞我的和親對象是個(gè)殘疾皇子媒怯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容