Swift 学习笔记——The Swift Programming Language — 1

关于元组,可选类型,强制解析,断言等等.....

Swift 学习 第一天(本来准备上传到自己搭建的博客,结果一个hexo d 命令下去,直接全部清空了...心塞,不想再搞了,直接发简书)

元组(tuples)

swift 相对于OC 新增的内容
可以把元组看成一个数组类型,OC 中数组里只能存放相同类型的对象;元组和它的区别是可以添加任意数量的,任意不同类型的对象.
基本写法如下
let http404Error = (404, "Not Found")
// http404Error 的类型是 (Int, String),值是 (404, "Not Found")
但是我更喜欢这种写法
let http404Error = (statusCode:404,statusMessage: "Not Found");
在定义的同时给每个元素命名,可阅读性增强,在也便于使用时的拆分;
取元组中的元素有两种方式

  1. 对比OC数组下标来理解http404Error.0
  2. 如果你命名了元素, 你可以通过http404Error.statusCode来取值,这样更容易理解

可选类型(optionals)

又一个不同之处
对于一个可选类型来说,它可以有值,也可以没值,这就是可选这个名称的由来
在OC中,将一个字符串转化为一个integer类型(前提是能转,不能转,运行会报错),这也是很常见的需求
例如 NSString *text = @"123";
将text转化为NSInteger 可以用这个方法[text integerValue];
在swift中String转化为Int,这样写
let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
在possibleNumber是由纯数字组成的字符串时;swift可以很正常的转换,但是如果不是,那么,swift无法转换,这样的话,convertedNumber是没有值,也就是nil;这就是optional xx的意思,它可以有值,如果没有值就返回一个nil.
可选类型的定义:
var str : String?
如果,定义时没有给值,那么系统默认值为nil

隐式解析可选类型

对于我们日常编程中,对于某一个可选变量optionalValue,我们知道它肯定有值,并且我们也要使用它的值,那么,我们可以用optionalValue!来告诉系统,我知道它有值,请使用这个值
这种用法,swift称它为强制解析
既然我们在使用它时,可以用optionalValue!,那么如果我们在定义的时候这样写,代表什么含义?
var str : String! = "hello world"
这代表一个隐式解析可选类型;
第一次被赋值之后,可以确定一个可选类型总会有值.
隐式解析可选类型可以看做一个可以自动解析的可选类型。只要在声明的时候把感叹号放到类型的结尾,而不是每次取值的可选名字的结尾。

强制解析(forced unwrapping)

对于一个可选类型,我们清楚它有值,而且也要用它,写作optionalValue!来取它的值,这样叫做强制解析.

断言(assertion)

主要在调试的时候使用, 给其一个条件,他会判断,这个条件是否为true,如果是,那么继续运行,如果不是,则报错;
文档中一个例子很好的说明这个:
let age = -3 assert(age >= 0, "一个人的年龄不能小于0") // 因为 age < 0,所以断言会触发
断言信息一个人的年龄不能小于0,如果不需要,可以省略


以上是Swift学习第一天,因为之前是主要语言是OC,在学习笔记中,我会有很多处与OC的对比,来加深我的记忆,也便于自己的理解

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

推荐阅读更多精彩内容