Swift语言基础

目录
  1. 01 The Basics
  2. 02 Basic Operators
  3. 03 Strings and Characters
  4. 04 Collection Types
  5. 05 Control Flow
  6. 06 Functions
TOC

swift是ios开发的标准语言之一,大致看了下,和C蛮像的。感觉自己能做一个app蛮有意思的,苹果也有比较完整的官方文档,这篇文章便是阅读官方文档后留下来的笔记。

只打算看完最基础前面部分,至于后面的内容,还是在实践中学习吧。


01 The Basics

  • 常量和变量:和js很像,用let和var,变量类型都差不多,可以自动推测变量类型。
  • 输出:println:输出换行,print:输出不换行,输出变量:(变量名)
  • 注释:和C++一样
  • 断句:行间不强求添加分号,但是行间为了区分两句子就要添加分号。
  • 整数转换:显式的:Double(int)
  • If:要打大括号,判断部分必须是bool类型的,不能和C一样用0和1
  • 元组(tuples):C没有的东西,相当于一个临时的结构体,使用方法很直观,用( _ ,_ )拆解即可。
  • 可选(optionals):C没有这玩意,代表有值是x,或者没有值。可以用if来判断它有没有值,在名字后面添加!可以强制按照有值进行转换。nil有点像NULL,表示没有值。类型名字后面有?表示这是可选的。直接在类型后面加!表示这个是隐式可选,相当于在取值的时候自动在最后加了个!。
  • 断言(assert):调试用,相当于if print的概念,便于遇到某条件的时候跳出。

02 Basic Operators

和C大同小异,改变的地方有:

  • = 不返回值,避免把“==” 写成“=”而不报错
  • 数值运算符会检测是否溢出,
  • string可以用 + 拼接
  • 可以对浮点数求余,如 8 % 2.5 等于0.5
  • 区间值:在for里面用,闭区间a…b,半闭区间a..<b

03 Strings and Characters

和C大同小异,改变之处有:

  • 可以用加号拼接
  • character代替char,可以在for中直接用character来指代string的每一个字符。
  • 字符数量:函数countElements(字符串)
  • 用==判断是否相等
  • 有前后缀判断函数 hasPrefix(前缀) 和 hasSuffix(后缀)
  • 有大小写转换函数uppercaseString和lowercaseString
  • 有转换为Int的函数toInt()

04 Collection Types

两种集合类型:Array(数组)和Dictionary(字典),看起来这一块和python有点像。

  • 数组定义:类型[],也可以直接根据后面的内容简写,让编译器自行推断。
  • 数组可以用 +,+=,append,count,isEmpty,下标[0]
  • 数组插入:insert(“A”, atIndex: 0)
  • 数组删除:removeAtIndex(0),removeLast()
  • for in 和python一样,有enumerate
  • 字典和python一样,令为nil时相当于删除
  • 空字典:Dictionary<Int, String>()

05 Control Flow

  • for循环:for in 和 for var index = 0; index < 3; index++{}两种,和python挺像。
  • while循环:和C一样
  • if判断:和C一样
  • switch判断:和C相似,但注意它不会隐形掉入:在执行一个case后直接跳出整个switch。
  • 同样有break,continue,return,多了fallthrough(用来改变switch默认禁止掉落的情况)
  • 标签语句:name: XXX 便于精确控制break和continue的是啥。

06 Functions

  • 函数声明:func A(input: String) → String{return B}
  • 函数外部参数与内部参数定义:用空格隔开,或用#表示共用一个,外部名称用于调用函数时使用。(也会缺省地令内外用同一个,就像已经添加了#一样)
  • 可变参数:在类型后加上…,可以传入不定数量的同一类型变量,在函数内表现为一个数组
  • 输入输出函数:inout类型,会直接修改传入的参数
  • 可以直接将函数作为参数之一:写法为(Int, Int) → Int
DAR
SON