初识Swift

本人刚刚接触Swift 就随笔写写 不喜勿喷 如有什么不对的地方请不吝赐教  

先大概介绍Swift吧

2010年的夏天,苹果公司的开发人员Chris Lattne 接到了一个特别的任务,为OSX和IOS平台开发下一代的编程语言,也就是Swift

苹果公司于2014年WWDC(苹果开发者大会)发布的新开发语言Swift,可与Objective-C共同运行于Mac OS和IOS平台,用于搭建基于苹果平台的应用程序。2015年的WWDC开发者大会上,苹果公司推出了Swift2.0,并且Swift完全开源

自从Swift发布以来,在http://www.tiobe.com中的排行一直处于上升的状态


Swift与OC的区别:

在swift当中没有main函数的概念 也没有.h和.m文件,一个类只用.swift来表示 在swift中可以不写分号 如果一行当中有多条语句的时候分号就必须写 在swift当中采用print函数来代替NSLog函数打印数据,而且苹果建议我们这样,print函数比NSLog要高 在print函数没有占位符的概念 如果要插入函数采用\( )

变量和常量的区别:在swift当中变量和常量分别用var(变量)/let(常量)表示   格式:let/var 名字 = 初始值   在swift当中不用明确的指出变量和常量的类型,xCode会根据你的初始值自行推导出具体类型(Optional/alt+鼠标左键)查看类型

例子:

let a0 = 10

print("a0 = \(a0)")

let a1 = 20.3

print("a1 = \(a1)")

var a2 = 13

a2 = 14

print("a2 = \(a2)")

常用的数据类型:  swift不存在隐式转换,不同数据类型不能做运算,做运算之前必须进行强制类型转换    格式:let/var 名字:数据类型 = 初始值

例子:

let a1:Int = 21

print("a1 = \(a1)")

var a2:Double = 123.23

print("a2 = \(a2)")

let b1 = Double(a1) + a2//这边将a1强转为Double类型 只有相同类型能运算

print("b1 = \(b1)")

let a3:Bool = true//注意: swift中布尔值的两个值:true false

print("a3 = \(a3)")

let a4:Character = "1"//字符类型采用character 并且双引号赋值

var a5:String = "hello" // 在swif中采用String表示一个字符串,双引号赋值,不是一个对象,是一个结构体


//字符串演示

/*var str = "hello"

//1.长度

print("长度 = \(str.characters.count)")

//2.拼接字符串采用 += 拼接字符 append的函数

var str1 = "world"

str += str1

print("str = \(str)")

let c:Character = "c"

str.append(c)

print("str = \(str)")

//是否相等 ==

if(str1 == "world"){

print("相等")

}

//前缀相等

if(str1.hasPrefix("wo")){

print("前缀是wo")

}

if(str1.hasSuffix("ld")){

print("后缀是ld")

}

//大小写转换

print("str1的大写\(str1.uppercaseString)")

let str2 = "1231TFDH"

print("str2小写\(str2.lowercaseString)")

//字符串String支持遍历

for item in str.characters{

print(item)

}

let str4 = str1 as NSString//swift里面的字符串根OC字符串可以互相转换*/

取字符串特定下标的字母 我暂时只知道两种方法

第一种swift语法

let index = a4.startIndex.advancedBy(0)       

let index1 = a4.endIndex.advancedBy(-15)       

let range = Range(start: index, end: index1)

let a6 = a4.substringWithRange(range)

print(a6)

第二种将swift字符串先转成oc字符串在运算

let a7 = (a4 as NSString).substringWithRange(NSMakeRange(0, 1))

print(a7)


//数组演示

//在swift中数组类型是Array,创建一个数组或者字典时必须明确的指出数组里面元素的类型

//跟OC里面的数组NSArray可以互相转换

/*

var array1:[String] = ["123","234","345"]

print(array1)

array1 += array2

//增加元素

array1.append("456")

print(array1)

//删除

//array1.removeAll(keepCapacity: <#T##Bool#>)//全部移除 保留内存

//array1.removeAll() 全部移除 不保留内存

//遍历

//普通便利

for item in array1{

print(item)

}

//元组遍历

for (index,value) in array1.enumerate(){//enumerate(array)之前的写法

print("index = \(index),value = \(value)")

}

//数组的个数

//array1.count

*/


//字典 Dictionary演示

var dict0:[String:AnyObject] = ["1":"a","2":"b","3":"c"]

var dict1:[String:AnyObject] = ["4":"d","5":"e","6":"f"]

//增加和更新

dict0["4"] = "d"//如果key存在就是一个更新的操作,如果不存在就是一个增加的操作

print(dict0)

//删除

dict0.removeValueForKey("1")

print(dict0)

dict0.removeAtIndex(dict0.indexForKey("4")!)

//合并两个字典

for item in dict0.keys{

dict1[item] = dict0[item]

}

print(dict1)

//遍历

for item in dict0{

print(item)

}

//元祖遍历

for (key,value)in dict0.enumerate(){

print("key = \(key),value = \(value)")

}

//dic0.keys 所有key值

//dic0.values 所有value值



swift中新加了一种可选类型

//概念:如果一个值可能有值,也可能为nil,那么这个变量/常量就是一个可选类型。可选类型用?标识出来

//如果打印数据被Optional字样包含的话说明打印了一个可选类型

//可选类型不能直接参与运算,参与运算之前必须强制解包,强制解包用!表示

//警告:在对一个可选类型进行强制解包之前必须确认这个可选值不为nil

//unexpectedly found nil while unwrapping an Optional value 说明对nil强制解包

//在模型里面所有的基本数据类型不可以为可选类型,否则的话在字典转模型的话找不到这个key 给默认值0

/*var a1:Int? = 21

print(a1)

let b1 = 10

let c = a1! + b1

print(c)*/

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

推荐阅读更多精彩内容