swift学习之基础语法一

log打印

print("字符串")
let name = "字符串"
print(name)
print(name + name)
print(name + "字符串")

字符串

1、swift的字符串是结构体类型的

1、字符串的创建

数组

1、swift数组通过var/let区别数组是否为可变数组
2、数组元素类型同样必须一致
3、swift数组的空间不足,会直接*2就像OC的 arrayWithCapacity,减少分配空间的次数,提高一点性能
4、swift数组可以用+=或者直接拼接两个数组得到一个新数组,但是参加运算的两个数组必须是同一类型

1、数组创建

//构造函数创建空数组
var array2 = [Int]()//等价于var array1:[Int] = []
var array4 = Array<Int>()//等价于var array3:Array<Int> = []

2、数组增删改查

1)增append
var arr1 = [1,2,3]
var arr2 = [4,5,6]
arr1.append(4)
//此时的arr1 = [1,2,3,4]
var arr3 = arr1 + arr2
//此时的arr3 = [1,2,3,4,5,6]
arr1.append(contentsOf: arr2)
//此时的arr1 = [1,2,3,4,5,6]

2)删remove
arr1.remove(at: 0)
//此时的arr1 = [2,3,4,5,6]
arr1.removeLast(2)
//此时的arr1 = [2,3,4]
arr1.removeFirst(2)
//此时的arr1 = [4]
arr1.removeFirst(2)
//arr1.removeAll()
//此时的arr1 = [],且删除分配的空间
arr2.removeAll(keepingCapacity: true)
//此时的arr1 = [],且保留分配的空间
arr3.removeSubrange(0..<2)
//此时的arr3 = [3,4,5,6]
arr3.removeSubrange(0...2)
//此时的arr3 = [6]
3)改直接用下标改
arr3[0] = 8
//此时的arr3 = [8]
4)查index下标
var arr1 = [1,2,3,4,5,6]
arr1[0]//1
arr1[0..<2]//[1,2]

3、 遍历

字典

1、swift字典通过var/let区别字典是否为可变字典,且key唯一
2、swift字典的key要求可哈希的hashable,为了便于方便查找
hash:是指将key(字符串)转换成一个唯一的整数然后在查找的时候就可以直接找到,不需要遍历整个集合的key,提高集合的查找效率
3、swift字典同样通过keyvalue,如果key存在修改,key不存在新增

1、字典创建

var dict = Dictionary<String,Int>()
var dict1:[String:Int]?
var dict2:[String:Int] = [:]

2、字典增删改查

3、字典遍历

控制流

1、if语句

1)if语句的()可以省略{}绝对不能省略
2)if的条件只能是bool不存在非0即真的逻辑
3)if...else...在oc中用三目运算,而在swift中则使用
(条件) ? a语句 : b语句 (oc)
条件 ?? 默认值 (swift如果条件成立则表达式的值为条件表达式的结果,否则表达式的值就是默认值)

2、for循环

1)废弃传统的for循环,因为swift3.0废除了 ++

//正常序列
for i in 0 ... 8
{

}

//反转序列
for i in (0...8).reversed() {

}

//输出10 9 8 7 6 5 4 3 2 1
for i in stride(from: 10, to: 0, by: -1)
{
    print(i)
}

//输出0 1 2 3 4 5 6 7 8 9 10
for i in stride(from: 0, through: 10, by: 1)
{
    print(i);
}

3、switch

1)switch后的()和每一个case{}可以省略,最外围的{}不能省略
2)switch默认是不穿透的,而oc中默认穿透的需要用break阻止穿透,如果需要穿透fallthrough,case没有任何语句才需要使用break
3)switch在oc中每一个case必须使用{}来保证作用域,swift中则不需要
4)switch在swift中必须覆盖所有情况,如果case不能覆盖到全局,就必须使用default补全,oc中则不需要覆盖所有情况
5)switch在swift中如果存default必须在其他所有case之后,就是必须写在最后面,oc中default没有位置约束
6)let case (t1,t2)

4、while

while循环与oc的区别就在于do{...}while变成了repeat{...}while

注释

//MARK:小段落注释 //MARK:- 大段落注视 // FIXME:需要修改 // TODO:需要实现

对象和结构体

Swift并不会为class自动生成默认的init方法。如果我们不定义它,Swift编译器会报错。因此,无论多么简单的class,我们至少要为它定义一个初始化其所有属性的init方法。虽然有时候这样做很无聊,但是我们没有其它的选择。因为class并不简单表达一个“值”的概念。Swift要求我们明确通过init方法说明“打造”一个对象的过程。相反,struct表达一个自定义的“值”,在没有特别说明的情况下,一个值的初始化当然是把它的每一个member都按顺序初始化。

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

推荐阅读更多精彩内容