Swift常量变量数组(一)

1.  在Swift中可以使用var, let声明变量, var定义变量时值可以改变, 使用let定义时值不可以改变(常量).

2. 编译器可以推断变量类型, 也可以明确告诉编译器, 如: let var : Int = 2.

3. Swift中变量声明时不指定类型, 必须拥有初始值.

4. Swift不要求每行以分号结尾, 但是多个语句放到一行时需要分号.

5. Swift中没有值和其他所有值区分开来, 没有值用nil表示, 是一种与其他类型都不同的类型.

6. OC中nil实际上是一个指向0的void指针, 可以进行操作: int i = (int)(nil) + 2, 但是Swift中不允许, 因为nil和Int是不同的类型.(大多数类型不能合并, 编译器不知道结果是什么类型)

7. 如果允许一个变量在某些时候为nil, 必须声明可选类型, 可选变量的定义, 其类型后面加一个问号: var option : Int? = nil

8. 只有可选变量才能被置为nil

9. 对于可选变量, 可以进行拆包操作(unwrap), 通过!实现, 当可选变量没有值时对其拆包, 将出现运行时错误(crash).

10. 如果不希望每次用到可选变量对其拆包, 可将其声明已拆包的, 这样直接可以用到他的值, 但这样不安全, 因为他的值有可能是nil.

var optional : Int!

print(optional)

11. 元组, 元组是数据的一个简单几何, 利用元组可将多个值绑定到单个值中, 元组取值可以用数字也可以用标签.

let aTuple = (1, "YES") ;     let theNum = aTuple.0 ;    print(aTuple)

let anotherTuple = (aString: "YES", aNuber: 1) ;

let theString = anotherTuple.aString;   print(anotherTuple)

12. 数组, Swift中的数组很容易使用, 使用[]进行创建

整形数组: let array : [Int] = [1, 2, 3]

推断整形数组: let impoicitArray = [1, 2, 3]

空数组(空数组必须指定类型): let array = [Int]()

let声明的数组内容是不可变的, var声明的事可变的: var array = [1, 2, 3];

添加元素: array.append(4)

插入到指定位置(超出边界会出现运行时错误): array.insert(5, at: 3)

快速颠倒一个数组: array.reverse()

数组中项目的个数: array.count

13. 字典, 字典是一种将键映射到值的类型.

字典定义: var dict = ["key1": "value1", "key2": "value2"]

通过key进行修改: dict["key1"] = "modify value"

通过key获取value: var value2 = dict["key2"]

字典的键值可以是任意值: var dict = [1: 2];  var intValue : Int! = dict[1]

14. 控制流, Swift中的if语句和其他语言的if语句非常像, 只是不需要将表达式放到括号中

if 1+ 1 == 2 { //大括号必须添加, 否则编译错误\}

forin循环迭代每一项(forin number变量是隐士创建的, 不需要定义number变量就能让循环正常工作)

let loopArray = [1, 2, 3, 4];    var sum = 0;

for number in loopArray {   sum += number };         print("sum = \(sum)")

可以使用forin迭代一个数值范围: '..<' 范围运算符(从第一个开始, 但不包含最后一个, 如果希望包含用 '...')

var counter = 0;  for _ in 1 ..< 10 {}

while循环:  var count = 5;    while count > 5 {count -= 1}

15. if let, if let就是将一个可选变量的值给一个临时变量, Swift会自动检测optional变量是否有值, 如果有值会隐式拆包并给这个临时常量, 在接下来可以使用这个临时常量, 这种方式为可选绑定, 如果想操作可选值, 可以定义为if var 变量名.

var aString : String? = "a string"

if let theString =aString {      print("the string is \(aString)");

}else {     print("the string is nil")    } 

16. switch, switch是根据变量值运行代码的强大方式, Swift中switch的工作方式和c和oc有点不同, Swift中switch语句某一部分执行完毕后不会落入下一部分, 也就是说不必在最后使用break关键字. 在Swift中要么为所有可能的值提供一个case, 要么提供一个default case. switch不仅可以处理整数, 也可以多重类型进行切换.

let stringValue = "123"

switch stringValue {

    case: "123":  print("it's \(stringValue)")

    default: print("it's unknown")

}

let tupleSwitch = ("YES", 123)

switch tupleSwitch {

    case ("YES", "123"): print(tupleSwitch)

    default: print("some thing wrong");

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 229,362评论 6 537
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,013评论 3 423
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 177,346评论 0 382
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,421评论 1 316
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,146评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,534评论 1 325
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,585评论 3 444
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,767评论 0 289
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,318评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,074评论 3 356
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,258评论 1 371
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,828评论 5 362
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,486评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,916评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,156评论 1 290
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,993评论 3 395
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,234评论 2 375

推荐阅读更多精彩内容