Swift3-基础语法
2017-01-12 12:00
351 查看
Swift和Objective-C语言对比:
Swift语言是对OC语言的一个优雅的包装,底层还是使用Cocoa Touch,Foundation框架,只是语言上让开发变得容易。严格来讲,OC并不是一个独立的面向对象语言,它只是在C语言上层加上了一层轻度面向对象的外壳。
Swift的新特性:
(1)函数使用()和点调用语法
(2)函数标签特性
(3)严格的类型检查(非常安全)
(4)真正的面向对象(构造函数、析构函数)
(5)命名空间
(6)泛型处理
(7)闭包(ARC,对象通信、回调函数、反向传值)
Swift3-基础语法:
包括变量、常量声明要求;类型的定义;基本运算符。
Swift语言是对OC语言的一个优雅的包装,底层还是使用Cocoa Touch,Foundation框架,只是语言上让开发变得容易。严格来讲,OC并不是一个独立的面向对象语言,它只是在C语言上层加上了一层轻度面向对象的外壳。
Swift的新特性:
(1)函数使用()和点调用语法
(2)函数标签特性
(3)严格的类型检查(非常安全)
(4)真正的面向对象(构造函数、析构函数)
(5)命名空间
(6)泛型处理
(7)闭包(ARC,对象通信、回调函数、反向传值)
Swift3-基础语法:
包括变量、常量声明要求;类型的定义;基本运算符。
/* 1、关键字作为常量或者变量名 */ //尽量不要使用关键字作为常量或者变量名;如果一定要用,需要使用反引号``包含其变(常)量名,如下: let `let` = "1、关键字作为变量或常量名" //println输出内容会在输出字符串最后加上一个换行符,print不会 print(`let`)//修改之后print也会换行 NSLog("NSLog输出")//NSLog是带有时间戳的显示 /* 2、字符串插值语法:\() -- 字符串的格式化操作 */ print("\n2、字符串插值语法") var name:String = "ming" var age:Int = 16 print("My name is \(name),my age is \(age)") /* 3、整形 */ print("\n3、整形") let maxValueOfInt8 = Int8.max let maxValueOfInt16 = Int16.max let maxValueOfInt32 = Int32.max let maxValueOfInt64 = Int64.max print("所有整形数值最大范围:\n" + "int8:\(maxValueOfInt8)\n" + "int16:\(maxValueOfInt16)\n" + "int32:\(maxValueOfInt32)\n" + "int64:\(maxValueOfInt64)") let maxValueOfUInt8 = UInt8.max let maxValueOfUInt16 = UInt16.max let maxValueOfUInt32 = UInt32.max let maxValueOfUInt64 = UInt64.max print("各长度整形最大值:\n" + "UInt8:\(maxValueOfUInt8)\n" + "UInt16:\(maxValueOfUInt16)\n" + "UInt32:\(maxValueOfUInt32)\n" + "UInt64:\(maxValueOfUInt64)") /* 4、自定义类型 typealias */ print("\n4、自定义类型 typealias") typealias 字符串 = String var str:字符串 = "ming"//自定义类型也是通过typealias关键字将某个类型赋值一下 print(str) /* 5、数值进制 */ print("\n5、数值进制") let decInteger = 17 //17-是字面量 let binaryInteger = 0b10001 //17-二进制以0b作为前缀 let octalInteger = 0o21 //17-八进制以0o作为前缀 let hexInteger = 0x11 //17-十六进制以0x作为前缀 print(decInteger,binaryInteger,octalInteger,hexInteger) //添加额外的"_"和"0"使得字面量易读 let number:Int = 000_100_000_114 print(number) //可选变量没有对应的值或者之前的值已经失效,可将其值赋为nil(可选变量没有赋初始值时默认为nil) //普通常量或者变量不能被赋值成nil /* 6、算术运算符 */ print("\n6、算术运算符") var a = 1 a += 1 print("a=\(a)") //+还可以进行字符串拼接 var str1 = "Hello" var str2 = ",Ming!" var str3 = str1 + str2 print(str3) //取余(Swift3.0中的基础运算符并无太大改动,只是移除了取余运算符的浮点数取余功能,取余运算符可以进行浮点运算本是Swift独有的一个特点,3.0版本的改变后,Swift中的”%”运算符功能将与Objective-C与C语言中的取余运算符保持一致。) var aa = 11 var bb = 3 print("\(aa%bb)") //三目运算符 var age1 = 10 print(age1<0 ? "年龄不合法" : "年龄合法=\(age1)") //区间运算符 print("\n区间运算符") //闭区间 ... 包含最后一个值 print("闭区间") for i in 0...2 { print("--\(i)") } //半闭区间 ..< 不包含最后一个值 print("半闭区间") for i in 0..<2 { print("--\(i)") } //断言Assert操作 print("\n断言Assert操作") let distance = 2//-1 assert(distance > 0, "连点之间距离不能小于0")
相关文章推荐
- (转)Swift多线程实现方式
- 关于iOS基础总结(8)--关于Swift与OC的不同
- Swift3中的新特性
- Swift 学习笔记 [2] 类 结构体 枚举
- Swift 学习笔记 [1] 类型 值 集合 函数 闭包
- 关于Swift3.0的闭包,知道这些面试不愁。
- swift 时间时间戳获取及相互转换
- Swift3-CGRectMake在Xcode8上'CGRectMake' is unavailable in Swift
- iOS Swift NSNotificationCenter 通知
- Chris Lattner - Swift 编程语言主要作者 - LLVM 项目的主要发起人与作者之一, Clang 编译器的作者
- Swift3-创建Playground
- Swift-新建文件报错:No such module 'Cocoa'
- Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交
- ios swift uitextview如何应对键盘的遮挡
- 修改xcode快捷键
- Swift-可选类型和可选链
- Swift 中?和!
- 正式开始我的微博之路--swift
- Scroll Segmented Control(Swift)
- Scroll Segmented Control(Swift)