美文网首页
AppleScript 基础(一)基本语法和数据类型

AppleScript 基础(一)基本语法和数据类型

作者: 河码匠 | 来源:发表于2018-11-18 15:22 被阅读0次

AppleScript 基础

一、基本语法

  1. 在 AppleScript 中所有值都需要使用双引号引起来。
  2. 变量命名字母或下划线开头。官方建议使用驼峰的方式。
  3. 语句结束使用换行
    例如:定义变量variable值为Hello Word
set variable to "Hello Word"

二、常用数据类型

  1. number 数字
  2. string 字符串
  3. boolean 布尔
  4. list 列表类型(\color{red}{注意}:list 中的内容成为元素 item)�
  5. record 记录(\color{red}{注意}:record 中的内容成为属性property)

幸运的是 AppleScript 变量不用强制定义类型

三、字符串介绍和常用操作

1. 定义一个字符串 "set ... to ..."
    set myName to "elephant"
2. 字符串连接符 "&"
    set myName to "elephant"
    set age to 20
    -- get类似 php、python 的 echo、print
    get "name: " & myName & "; age: " & age
    >>> "name: elephant; age: 20"
3.查看字符串长度 "to the length/count of"
    set myName to "elephant"
    -- 这里 length 替换成 count 可以可以的
    set nameLength to the length of myName
    >>> 8
4.将字符串按照每个字母切割成 list "to every character of"
    set myName to "elephant"
    set myList to every character of myName
    get myList
    >>> {"e", "l", "e", "p", "h", "a", "n", "t"}

当然这种切割基本上没啥用,我们希望的是使用特定的符号切割字符串。继续向下看

5.按照特定的字符切割字符串 "AppleScript's text item delimiters"
    set myName to "Very fat elephant"
    set oldDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to " "
    set myList to every text item of myName
    set AppleScript's text item delimiters to oldDelimiters
    get myList
    >>> {"Very", "fat", "elephant"}
    
    -- 如果只是按照空格切分字符串可以使用下面的方法
    set myList to words of myName
    get myList
    >>> {"Very", "fat", "elephant"}
    
    -- 还可以限制数量哦
    set myList to words 1 thru 2 of myName
    get myList
    >>> {"Very", "fat"}

说明:
第3行:设置要切分的特殊字符
第2,5行:因为系统默认的AppleScript's text item delimiters这个东西是{""}所以在切割完字符串后需要在修改回来
第4行:"to every text item of"每个文本元素;而"to every character of"每个字符

6. 获取指定范围的字符串 "text from word ... to word ... of ..."
set shortList to text from word 1 to word 2 of "We're all in this together"
>>> "We're all"
6. 字符串比较运算符
begins with (or, starts with) 以……开头
ends with 以……结尾
comes before / comes after 在……之前
is in 在……之中
contains 包含
does not contain 不包含
does not comes before 不在....之前
does not start with 不以……开头
does not contain 不以……结尾
is not in 不在……之内

用法示例:

    set myName to "Very fat elephant"
    set bool to myName is equal to "Very fat elephant"
    get bool
    >>> true
    
    set myName to "Very fat elephant"
    set bool to myName does not contains "Very"
    get bool
    >>> false
    
    set myName to "Very fat elephant"
    set bool to myName comes before "Very"
    get bool
    >>> false
    
    set myName to "Very fat elephant"
    set bool to "V" comes before myName
    get bool
    >>> true

四. 列表(list)介绍和常用操作

1.定义一个列表
 set myList to {"a", "b", "c"}
2. 替换list 中元素的内容 "set item ... of ... to ..."

\color{red}{注意}:在 AppleScript中 list 是从1开始计数的

    set myList to {"a", "b"}
    set item 2 of myList to "B"
    get myList 
    >>> {"a", "B"}
3.获取 list 中最后一个元素或第一个 "set ... to first/last item of ..."
    set myList to {"a", "b", "c", "d", "e", "f"}
    set value to last item of myList
    >>> "f"
4.获取指定值 "set ... to item ... of ..."
    set myList to {"a", "b", "c", "d", "e", "f"}
    set value to item -2 of myList
    >>> "e"
5.获取指定范围的数据

获取从 N到M 所有的值

    set myList to {"a", "b", "c", "d", "e", "f"}
    set shortlist to items 2 through 5 of myList
    get shortlist
    >>> {"b", "c", "d", "e"}

获取范围数据时,根据数据类型筛选

    set myList to {1, "a", 3, "b", 4, 5}
    set shortlist to integers 1 thru 3 of myList
    get shortlist
    >>> {1, 3, 4}
6.排序 "set ... to reverse of ..."
    set myList to {"a", "b", "c", "d", "e", "f"}
    set reverseList to reverse of myList
    get reverseList
7.获取 list 中的数量,和字符串一样 "set ... to the length/count of..."
    set myList to {"a", "b", "c", "d", "e", "f"}
    set listCount to the length of myList
    >>> 6
8.随机获取 list 中一个数据 "set ... to some item of..."
    set myList to {"a", "b", "c", "d", "e", "f"}
    set a to some item of myList
    get a
9.给 list 末尾添加一个元素 "set the end of ... to ..."
     set myList to {"a", "b", "c", "d", "e", "f"}
     set the end of myList to "zzz"
     get myList
     >>> {"a", "b", "c", "d", "e", "f", "zzz"}
10.将 list 组成字符串
    set myList to {"a", "b", "c", "d", "e", "f", "ads"}
    set oldDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "-"
    set myList to myList as string
    set AppleScript's text item delimiters to oldDelimiters
    get myList
    >>> "a-b-c-d-e-f-ads"
11.比较运算符和字符串类似

五、记录(record)

1. 创建一个记录
    set myRecord to {name: "elephant", age: 20}
2. 获取记录的值 "set ... to ... of ..."
    set myRecord to {name: "elephant", age: 20}
    set value to name of myRecord
    get value
    >>> "elephant"
3. 修改记录的值
    set myRecord to {name: "elephant", age: 20}
    set age of myRecord to 30
    get myRecord
    >>> {name:"elephant", age:30}
4. 获取数量 "set ... to the length/count of ..."
    set myRecord to {name:"elephant", age:20}
    set recordCount to the length of myRecord
    get recordCount
    >>> recordCount

六、类型转换 "... as ..."

set a to "15" as number
get a
>>> 15

set b to 123 as string
get b
>>> "123"

set c to "asdf" as list
get c
>>> {"asdf"}

set d to 0 as boolean
get d
>>> false

相关文章

  • AppleScript 基础(二)流程语句和常用语句

    基础一回顾 在AppleScript 基础一(基本语法和数据类型)中介绍了 AppleScript 常用的5种变量...

  • AppleScript 基础(一)基本语法和数据类型

    AppleScript 基础 一、基本语法 在 AppleScript 中所有值都需要使用双引号引起来。 变量命名...

  • python基础语法复习总结

    一、python基础语法、基本数据类型、运算符、变量 1.python基础语法: 注释:语句: 结束没有分号,一行...

  • JS 语法和数据类型

    讨论 JavaScript 的基本语法,变量声明,数据类型 和 字面量。 1.基础 JavaScript 脚本的源...

  • JavaScript 学习笔记

    五种基本数据类型和一种复杂数据类型 最基础的语法: 基本操作符: 控制语句 函数 复杂概念,进阶变量,作用域,内存...

  • Python学习(二)

    第二章 基础语法 2.1 数据类型 2.1.1 Python变量的赋值和基本数据类型 Python中的变量不需要声...

  • Kotlin 基础学习笔记

    Kotlin 基础教程 Kotlin 文件以 .kt 为后缀 一、基本语法 二、数据类型 Kotlin 的基本数值...

  • ES5知识点整理

    基本语法 基本语法包括数据类型,操作符,语句,函数 数据类型 5种简单数据类型(基本数据类型)Undefined、...

  • JS基础

    JavaScript概述 、 JavaScript基础语法 、 变量和常量 、 数据类型 数据类型转换 、 运算符...

  • 2017-07-03

    0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有strin...

网友评论

      本文标题:AppleScript 基础(一)基本语法和数据类型

      本文链接:https://www.haomeiwen.com/subject/ckhgfqtx.html