初识Swift语言第一篇

Swift语言是乔布斯留给我们的一门新的编程语言 用于ios编程 ,相比于OC语言 它是对编程更加简单,灵活和有趣.下面我就写下我初学Swift做的一些笔记 比较杂但很实用

同C语言输出相似 Swift输出实用print

print("hellow world")

Swift 语以空格结尾 不需要分号

所有使用let定义一个常量 不能重新赋值

Swift支持隐式类型推断 可以根据初值 自动的判断Swift的数据类型

print(a)
let b : String = "nihao"
print(b)
let c = 20.1```
#Swift不支持隐式类型转换 不能让俩个不一样的数据类型做四则运算
#Swift强转的格式 数据类型(需要强转的数据)
```let d = Double(a) + c
print(d)
let e : String = "changsha"
let f : String = "yucu"```

#Swift里面支持运算符的重载 会根据语境自动判断运算符的含义
```let f2 = e + f
print(f2)```
#变量
```//Swift里使用var定义一个变量
var a = 10
//可以赋一个新值
a = 100
print(a)
//如果需要定义一个初始值为nil的变量的话,格式 : var + 变量名 + ":" + 变量类型? = nil
var b : String? = nil
b = "student"
print(b)```
#数组
```//Swift数组里面的数据类型必须是一样的
//AnyObject Swift1.0版本
////NSObject Swift2.0版本
let array = [1, 2, 3, 4, 5, "a"]
//数据初始化的第二种方式 先指定数据类型
let array1 : [Int] = [1, 2, 3, 4]
var array2 = [1, 2, 3, 4, 5]
//数组的增删改查
//插入一个数
array2.insert(8, atIndex: 2)
////插入一个数组
var array3 = [6, 7, 8, 9]
array2.insertContentsOf(array3, at: 2)
//数组的删
//删除数据的同时 保存内存空间
//Swift里边的BOOL是一个枚举 只有true flase 俩种参数
array2.removeAll(keepCapacity: true)
//按区间删除
let range : Range = Range (start: 1, end: 5)
array2.removeRange(range)
//数组的改
array2[1] = 10
var array4 = [11, 12, 13, 45]
//运算符重载
var array5 = array4 + array3```
#字典
```//一个简单的字典
let array = [1, 2, 3, "1"]
let dictionary = [1 : 2, 3 : 4, "a" : "b"]
//Swift的字典里面 所有的key 所有的value都必须是同一种类型的
let dictionary1 : [Int : String] = [1 : "a", 2 : "b"]
//可变的字典
var dictionary3 = [1 : 2, 3 : 4, 5 : 6]
//为不存在的值做赋值操作 就是增加操作
dictionary3[7] = 8
print(dictionary3)
//修改对应key的value值
dictionary3[1] = 100
print(dictionary3)
//删除对应key 的value值
dictionary3.removeValueForKey(1)
print(dictionary3)
//查找
print(dictionary3[3])```
#元组
```//使用 () 表示定义一个元组 元组里面没有数据类型的概念
let type = ("罗峰", "DHM")
//访问 元组的第一张方式 直接通过下标访问
print(type.0)
//访问元组的第二种方式 通过类访问
let type2 : (name : String, nicName : String) = type
print(type2.name)```
#循环结构
```//for循环
let array = [1, 2, 3, 4, 5]
for var i = 0; i < array.count; i++ {
    print("i = \(i)")
}
//while循环Swift写法
var i = 0
while i < 10 {
    i++
    print(i)
}
//repeat while 和 do while一样
//Swift1.0版本的时候叫做do while Swift2.0版本的时候叫做repeat while
repeat {
i++
print(i)
}while i < 10
//for in 循环 Swift写法
let array2 = [1, 2, 3, 4, 5, 6]
for var a in array2 {
    print(a)
}```
#循环分支
```var timer : String? = nil
if timer != nil {
    print("timer存在")
} else {
    print("timer不存在")
}
let value = 0
switch value {
case 0:
    print(value)
case 1:
    print(value)
default:
    print("超了")
}
//0...10 表示的是 从0开始到10结束 并且包含10
//0..<10 表示的是 从0开始到10结束 并且不包含10
switch value {
case 0...10:
    print(value)
case 11...20:
    print(value)
default:
    print("超了")
}
let point = (10, 10)
switch point {
case (10, 10):
    print(point)
case (_, _):
    print(point)
}
//判读
let value3 = 0
let value2 = 100
//switch value = 0 value < 10 成立
switch value3 {
case 0 where value2 < 10:
    print(value3)
case 0 where value2 > 10:
    print("正确")
default:
    print("错误")
}```
//函数
```//无参无返回值函数
//func (关键字) test (函数名) "()" (参数列表) -> Void(返回值类型)
func test() -> Void {
    print("我是第一个函数")
}
test()
//无参有返回值
func test1() -> String {
    return "我是第二个参数 无参有返回值"
}
//接收函数的返回值
let str = test1()
print(test1())
//返回一个Int 类型的数组
func test2() -> Array<Int> {
    return [1, 2, 3]
}
print(test2())
//返回一个OC的数组
func test3() -> NSArray {
    return [1, 2, "a", "b"]
}
print(test3())
//有参无返回值的函数
//参数格式 参数名 + ":" + 参数类型
//-> Void可以省略
func test4(name : String, sex : String) -> Void {
    print("我叫\(name),我的性别是\(sex)")
}
test4("罗峰", sex: "未知")
//有参数有返回值
//参数是一个数组格式 : 参数名 + ":" + Array<数据类型>
func test5(phoneNumber : Array<Int>) {

}
//无参有多个返回值
func test6() -> (String, String) {
    return ("罗峰", "18")
}
//使用元组得出返回值
let type = test6()
print(type.0)
//有参有返回值
func test7(name : String, age : Int) -> (String, Int) {
    return (name, age)
}
//使用元组得出返回值
let type1 = test7("罗峰", age: 18)
print("我叫\(type.0), 今年\(type.1)岁")
//inout函数
// Swift函数里面的参数 默认是使用let修饰的 是不可以更改的
func test8(inout number : Int) {
    number = 200
}
var a = 5
test8(&a)
print(a)
//函数嵌套
//第一层
func test10() {
    //第二层
    func test11() {
        //第三层
        func test12() {
            //第四层
            func test13() {
                //第五层
                func test14() {
                    //第六层
                    func test15() {
                        //...可以无限定义下去
                    }
                }
            }
        }
    }
}```
##好了 这篇就写这么多了 更多内容将会在下篇博客书写
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容