AppleScript-ում ես փորձում եմ սովորել, թե ինչպես ստուգել ցուցակի տարրերի արժեքը, բայց երբ փորձում եմ ստուգել, թե արդյոք նյութը ամբողջ թիվ է, ես ստանում եմ ոչ ճշգրիտ արդյունքներ: Սկզբում ես հղում արեցի Apple-ի ավտոմատացման ուղեցույցի ստորագրությանը բաժինը Որոշում, թե արդյոք ցուցակը պարունակում է կոնկրետ տարր.
property one : 1
property two : 2
property three : 3
property bad : 4
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
if someList contains string then
display dialog "good"
else
display dialog "not numerical"
end if
end tell
end checkProperty
Երբ ես կատարում եմ սա, ես ստանում եմ not numerical
, չնայած յուրաքանչյուր տարր ամբողջ թիվ է: Եթե հղում կատարեմ Applescript, փոխակերպելով ամեն տարրը ցուցակից մինչև ամբողջ թիվ և կատարեք՝
property one : 1
property two : 2
property three : 3
property bad : "bad"
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
repeat with theItem from 1 to length of someList
set item theItem of someList to (item theItem of someList as integer)
if theItem is integer then
display dialog theItem
else
display dialog "not numerical"
end if
end repeat
end tell
end checkProperty
Այն աշխատում է մինչև ցուցակի վերջին մուտքը (bad
) և սխալներ կան, քանի որ theItem
-ը չի կարող տողը վերածել ամբողջ թվի: SO-ում որոնելիս հանդիպեցի Ստուգեք, արդյոք փոփոխականը համարն է՝ Applescript և փորձեցի ընդունված պատասխանը համարով:
property one : 1
property two : 2
property three : 3
property bad : "bad"
my checkProperty()
on checkProperty()
tell application "Finder"
set someList to {one, two, three, bad}
repeat with theItem from 1 to length of someList
if class of theItem is number then
display dialog theItem
else
display dialog "not numerical"
end if
end repeat
end tell
end checkProperty
բայց երբ սկրիպտը գործարկվում է, այն վերադարձնում է not numerical
յուրաքանչյուր տարրի համար: Եթե փորձեմ երկրորդ պատասխանը, որն օգտագործում է ամբողջ թիվ.
if class of theItem is integer then
display dialog theItem
else
display dialog "not numerical"
end if
Ինձ վերադարձվում է անհատական երկխոսություն՝ գրառումները հաշվելու համար: Ինչպե՞ս կարող եմ ստուգել ցանկի տարրի արժեքը AppleScript-ում, որպեսզի տեսնեմ՝ արդյոք այն ամբողջ թիվ է, թե տող՝ առանց սխալի: