波哥Swift学习8.30~9.4学习总结

对于我来说,Swift已经不是一门陌生的语言了,不过这几天听波哥讲Swift4.0,又对Swift这门语言有了进一步的了解。


本次内容有:

  • 元的操作符进一步理解与代码规范 ✅
  • 字符与字符串在Swift4.0中的新特性
  • 字符串索引
  • 数组的高阶操作(闭包+函数式编程)✅
  • Set类型的更多操作与方法

元的操作符进一步理解与代码规范

元的操作符:操作几个对象就叫几元操作符 比如:

let b = 1
let a = b

上面的=就是一个操作符,它操作了ab两个对象,所以=二元操作符 再比如:

-b

代码中的-就是一个操作符,它只对b一个对象进行了操作(取它的相反数)所以-一元操作符
代码规范:二元操作符操作2个目标,在2个目标之间,前后用空格分隔.比如:3 + 4 ;+操作了3和4两个对象,所以用空格分开。


字符与字符串在Swift4.0中的新特性

字符与字符串在Swift4.0中的新特性有一下2点:

  • 支持多行字符串(对前端开发效率大大提高)
    多行字符串:使用"""输入你要的多行字符串""" 使用一组三个"来创建。举个例子:
let poem = """
浩荡离愁白日斜,
吟鞭东指即天涯。
落红不是无情物,
化作春泥更护花。
"""
print(poem)

在Xcode9中看看输出结果。自动加了换行。

  • 计算字符串字符总数方法简化
    在Swift3.0中,对字符串计数是这样的:
    poem.characters.count
    在Swift4.0中,是这样的:
    poem.count

字符串索引

字符串索引并不常用,为了更熟悉Swift语言,决定还是谢了,使用代码块的形式来呈现。

let poem = """
浩荡离愁白日斜,
吟鞭东指即天涯。
落红不是无情物,
化作春泥更护花。
"""
//取出字符串的第1个索引
poem.starIndex

//取出字符串最后一个索引
poem.endIndex

//通过下标访问字符串的字符
poem[poem.startIndex]

//用字符串的index(after:)或index(before)引用后一个或前一个索引
poem[poem.index(before: poem.endIndex)]

//用字符串的index(_:offsetBy:)方法向前进位
poem[poem.index(poem.startIndex, offsetBy: 3)] //前进3位
poem[poem.index(poem.endIndex, offsetBy: -3)] //后退3位

对于字符串索引有一点需要注意:字符串的endIndex不是该字符串的最后一个字符!** 比如上述代码poem,它的endIndex不是“。” “。”是endIndex的前一位。


数组的高阶操作(闭包+函数式编程)

这次学了两个高阶操作:

  • 高阶操作①: 求和,连接元素, reduce
    举个例子:
//连接元素
let str1 = ["A","P","P","L","E"]
let title = str1.reduce("I love") {
    $0 + "," + $1
}

//求和
let number1 = [1,3,5,7,9]
let total = number1.reduce(0) {
    $0 + $1
}

上面的是闭包表达式,下一章会提到reduce后面()中的是初始值,其实reduce就是一个循环,也可以用普通代码写出来,以第二个求和闭包为例:

let number = [1,3,5,7]
func reduce(array:[Int], initValue:Int) -> Int{
    var total = initValue
    
    for i in 0..<array.count {
        total += array[i]
    }
    
    return total
}

reduce(array: number, initValue: 0)
  • 高阶操作②: 变形 map
    举个例子,把一个Int类型的数组转化为String类型的数组:
let number = [1,2,3,4,5,6,7]
//“->”后面表示你要转化的类型
let intToStr = number.map { (number) -> String in
    return "\(number)"
}

该方法同样可以使用函数实现(也是个循环)

func mapIntToStr(array:[Int]) -> [String]{
    var answer = [String]()
    var value = ""
    
    for i in array {
        value = String(i)
        answer.append(value)
    }
    
    return answer
}

let numbers = [1,3,5,7]
let intToStr = mapIntToStr(array: numbers)

只不过用闭包表达式写简洁了许多!


Set类型的更多操作与方法

  • ①元素数: count, 空否: isEmpty
let s: Set = [1,4,5,6]
//计数
s.count

//空否
s.isEmpty
  • ②插入:insert, 移除:remove
//插入
s.insert(2)

//移除
s.remove(2)
  • ③是否包含某元素:contains 🔝常用
s.contains(5)

交集 intersection

let s2: Set = [1,4,9,0]
s.intersection(s2)

补集 symmetricDifference

s.symmetricDifference(s2)

其实,Swift的语法十分灵活,上面这些点语法在字符串,数组等情况下都可以通用!

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

推荐阅读更多精彩内容