Swift基本语法
来源:互联网 发布:linux下挂载iscsi存储 编辑:程序博客网 时间:2024/05/17 08:15
一.初识Swift.让我们的程序飞起来~(基本语法)
由于苹果官方主推swift语言,在接下来的iOS开发中,swift的趋势愈加重要,本人由于也是对swift的兴趣所在,特此发帖,从零开始~ 总结swift的语法要求及书写规范,在此分享给给位书友~ 有错误的地方请予以指出其所在~
让我们的程序飞一会咯~
接下来我会介绍swift的基本语法
- 常量&变量
- 可选项
- 控制流
- if
- 三木
- if let
- guard
- switch
- 字符串
- 循环
- 集合
- 数组
- 集合
第一个APP程序
import UIKit/**0. Swift中,不需要分号,在其他语言中,`;`的作用是表示一句指令结束如果多个语句并列,可以使用分号1. OC 中,alloc / init 对应在 (),构造函数,创建并且初始化对象2. OC 中,alloc / initWithXXX,Swift 中 (XXX: )3. OC 中,[UIColor redColor] 类函数,在 Swift 中直接用 .4. 枚举类型 UIButtonTypeContactAdd,Swift中分开写,[回车-> 向右-> .]直接 . 很多时候,没有智能提示!5. print 类似于 OC 的 NSLog,但是效率更高6. 添加监听方法,直接用 "方法名",如果有参数 "方法名:"7. Swift 中,可以省略 self.,加上也可以,个人建议,最好不要加,`闭包`中必须要 self.*/class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let a = 10; let b = 20 print(a + b) // 创建一个视图并且指定位置 let v = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) // 背景颜色 v.backgroundColor = UIColor.redColor() view.addSubview(v) // 创建按钮 let btn = UIButton(type: .ContactAdd) btn.center = view.center view.addSubview(btn) // 添加监听方法 btn.addTarget(self, action: "click:", forControlEvents: .TouchUpInside)}func click(sender: UIButton) { print("点我了 \(sender)")}
}
变量和常量
定义
let 定义常量,一经赋值不允许再修改
var 定义变量,赋值之后仍然可以修改
/** 提示:可选项是所有 OC 的程序员刚接触 Swift 时候,最头疼的问题! - 1. 明确可选项的概念! - 2. 实际开发中,借助 Xcode 智能提示,帮助修改! - 3. 每次修改,都要思考为什么!*/func demo4() { let urlString = "http://www.baidu.com/中文" // 注意:构造函数如果有 `?` 表示不一定能够创建出对象 let url = NSURL(string: urlString) print(url) // 注意:如果参数中,没有 ? 表示必须要有值,如果为 nil,就崩! if url != nil { let request = NSURLRequest(URL: url!) print(request) }}// 可选项:一个变量,可以为本身的类型,也可以为 nilfunc demo3() { // 定义变量/常量如果需要指定类型 : 类型 的方式指定准确的类型 let x: Double = 20 print(x + 1.5) // 可选项 使用 ? 定义 // y 可以是一个整数/也可以是 nil,如果是变量,默认是 nil // 注意:可选项在输出的时候,会提示 `Optional` var y: Int? //= 10 print(y) // * 可选项不能直接计算 // ! - `强行解包 unwrapping` - 程序员承诺 y 一定有值,如果没有,崩给我看! // unexpectedly found nil while unwrapping an Optional value // 每次写 ! 的时候,都需要程序员思考,是不是有可能为 nil! print(y! + 20)}func demo2() { // 自动推导 - 会根据设置数值的右侧代码,推断变量/常量的类型 // 但是:在 Swift 中,任何时候,都不会做隐式转换 // 任何两个类型不同的变量或者常量不允许直接计算!- Swift 是一个类型要求异常严格的语言! // 整数默认是 Int -> 64位整数 long let x = 20 // 小数默认是 Double -> 双精度的小数,OC 中使用 CGFloat 比较多,浮点数 let y = 1.5 let r1 = x + Int(y) print(r1) let r2 = Double(x) + y print(r2)}// 基本使用func demo() { // let 定义常量 - 一旦设置数值,不允许修改 // var 定义变量 - 可以修改 // 问题:let & var 如何选择,尽量用 let,必须要修改的时候,再用 var,程序更安全 let x = 20// x = 30 var y = 30 y = 80 print(x + y) // 视图实例化之后,并没有修改指针地址 let v = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100)) // 只是在修改属性 v.backgroundColor = UIColor.redColor()}}
---控制流
import UIKitclass ViewController: UIViewController {override func viewDidLoad() { super.viewDidLoad() switchDemo()}func switchDemo() { // option + click 是开发中最重要的组合键 let number = "11" /** 1. 不需要 break 2. 不在局限在 对 int 的分支,可以对任意数据类型进行检测 3. 各个 case 之间,不会穿透,如果有多个值,使用 , 分隔 4. 定义变量,不需要使用 {} 分隔作用域 5. 在 swift 中,必须涵盖所有条件,每一个 case 至少包含一条语句 */ switch number { case "10", "11": let name = "老王" print("\(name) 好") case "9": print("良") default: break// print("差") }}/// guard - 是和 if let 刚好相反的指令/// Swift 2.0 推出的语法func demo3() { let oName: String? = "张三" let oAge: Int? = 20 guard let name = oName else { print("name 为 nil") return } guard let age = oAge else { print("age 为 nil") return } // 代码执行到此,name 和 age 一定有值 // 在实际开发中,复杂的代码在条件判断之后 // 使用 guard 会让嵌套层次少一层! print("Hi \(name) --- \(age)")}/// if letfunc demo2() { let oName: String? = "张三" let oAge: Int? = 20 if oName != nil && oAge != nil { print("Mr" + oName! + "---" + String(oAge!)) } // if let 可以设置数值,进入分支后,name 可以保证一定有值 if let name = oName { print("Hi " + name) } // 多值的设置,使用 , 分隔 // 注意:if let 语句中不能使用 && || 条件 if let name = oName, age = oAge { print("Hi " + name + "---" + String(age)) }}/// 三目 - 在 Swift 中,用的很多!// if 语句,一不小心会写的丑疯了!func demo1() { let a = 2 a > 5 ? print("哈哈") : print("呵呵")}// 基本的 iffunc demo() { let x = 10 /** 1. 没有 () 2. 必须要有 {} 在很多公司的开发规范中,都是禁止不使用 {} 的! 3. 条件判断,C 语言中有一个非零即真,Swift 中只有 true / false */ if x > 5 { print("xxx") } if x > 20 { print("大了") } else { print("小了") }}}
0 0
- Swift基本语法
- swift的基本语法
- Swift基本语法
- Swift基本语法
- Swift的基本语法
- Swift基本语法
- swift基本语法简介
- swift基本语法
- Swift基本语法
- IOS:Swift基本语法
- swift 的基本语法
- swift的基本语法
- swift基本语法
- swift的基本语法
- Swift 基本语法
- Swift 基本语法 : 一
- Swift基本语法
- Swift 基本语法
- uoj128/bzoj4196/NOI2015.软件包管理器(树链剖分)
- 轻松学习JavaScript五:JavaScript的变量和数据类型
- CNN网络提取哪层输出作为最后提取的特征为宜?
- Java基础之Arrays的用法总结
- 编译ceph
- Swift基本语法
- 关闭NavgationController自带的边缘手势侧滑
- 09-动作流程-1-MoveBy分析
- 重新拾起linux c
- Android获取Manifest中<meta-data>元素的值
- [Phonegap+Sencha Touch] 移动开发70 cordova app中使用增强的webview
- MQ 本地队列 和远程队列的创建
- 第十四周项目3-是否二叉排序树?
- 回调函数