内容简介:Swift是一门新的语言,不过现在已经出到Swift4了,今天不介绍这些.很多人想学Swift,不知从何开始,今天我就简单说下入门知识,我认为在学习Swift之间最好先把这些基本的知识掌握了,才能更好的去认识它学习它,使用它.全是干货,并且附上demo:阅读顺序:
Swift是一门新的语言,不过现在已经出到Swift4了,今天不介绍这些.很多人想学Swift,不知从何开始,今天我就简单说下入门知识,我认为在学习Swift之间最好先把这些基本的知识掌握了,才能更好的去认识它学习它,使用它.
全是干货,并且附上demo: swift基础知识demo .
阅读顺序:
下面的基本介绍,我建议大家认真读一读,尤其是从OC转过来的 程序员 一定要看一下,Swift是一门全新的语言,和OC的差别很大.
开始 --- Swift --- Coding
一、基本介绍
这里只介绍一些初学swift的基本概念,需要提前了解的东西
-
Swift语法和OC不一样,OC每一行代码都是以分号";"结尾的,但是Swift结尾是没有结尾标识符的
-
OC只要语法正确就可以,不用整理格式,但是Swift非常注重格式,比如 a = 3 ,在=的左右必须都有一个空格,或同时有多个,当=左右空格个数不一样时,比如 b= 2 这样会报错
-
OC调用方式的时候是,是类名或对象名+空格+方法名,然后用中括号括起来:[Person saveCall]; Swift是类名或对象名+.+方法名即可: person.saveCall ,类似与OC的点语法
-
Swift语法整体兼容OC,可以通过桥接和OC无缝对接
-
Swift语法风格整体类似于Java
-
新建的Swift类,只有一个.swift文件,没有.h文件和.m文件
-
Swift可以使用cocoapods,方法同OC一样
-
不需要导入头文件,可以直接引用其他类里面的方法或属性
-
Swift没有宏这个概念
-
Swift没有类扩展这个概念
-
没有main.m文件 @UIApplicationMain是程序入口标识
-
class 标示声明类 {} 用来标识类的范围
-
构造函数 [xxx alloc] initWithXXX] ==> xxx(XXX:) ;[alloc init] => ()
-
UIButtonTypeContactAdd => 枚举类型.枚举值(简写 .枚举值)
-
在当前类中访问属性或者方法的时候 可以省略 self. 推荐不写, 后面的闭包中必须添加self.
-
按钮的监听事件 使用 #selector
二、常见和变量
let a = 10 // a = 2 ----> 会报错 let定义的变量不能改变,不能进行赋值 print(a) // ---> 打印使用print语法,不适用NSlog var b = 20 b = 30 //不会报错,var定义的变量是可以被修改的 let c: Int = 10 let d: CGFloat = 20.3 /* swift是一个强类型的语言 option + click 是swift开发的热键 没有之一 Int 是swift中整数的默认类型(NSIbteger) 小数默认类型是double let d: CGFloat = 20.3 这属于手动指定类型 */ // let res1 = c + d --> 会报错 let res2 = c + Int(d) print(res2) /* 不同类型之间的运算 swift中类型不一样的时候不能操作,没有银行形式的转换 需要coder手动转换数据 转换类型: 通过类型调用构造函数 传递参数转换 ,或as语法 */
三、 swift与OC的不同演示
func scondDemo() { let myView = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100)) // myView.backgroundColor = UIColor.yellow myView.backgroundColor = #colorLiteral(red: 1, green: 0.3233583075, blue: 0.3979080506, alpha: 1) //color Literal属性 let btn = UIButton(type: UIButtonType.custom) //let btn1 = UIButton(type: .contactAdd) 可以简写 直接.+枚举 myView.addSubview(btn) //添加到根视图 --> 这里可以省略self,也可以写self.view view.addSubview(myView) //给按钮添加点击事件 btn.addTarget(self, action: #selector(btnDidClick), for: .touchUpInside) } @objc func btnDidClick() { print("我被点击了") }
四、可选类型
可选类型将是我们在学习swift中的一个大雷,短时间内我们很难接受,这是一个全新的概念,是OC中没有的
-
可选类型有可能有值,也有可能为nil
-
let声明可选类型是没有意义的
-
必选类型一定有值
var a:Int? = 10 a = nil //这就是一个可选类型 //不能够对可选类型做强制解包
var b: Int? = 15 let c = (b ?? 0) + 20 var d = 10 let res = 20 + d print(res,(b ?? 0),c,d) //可选类型不能够直接计算
你是否需要使用'?'或者'!'进行解包
-- '!' 强制解包 一定要获取一个值 不能够为nil
-- '?' 可选解包 后面具体说
-- 如果可选类型要进行计算的时候,系统会报错,需要程序员手动处理可选类型
-- '!' 强制解包有风险,需要谨慎使用,程序员需要对'!'负责 如果为nil 程序会崩溃
-- 一定要考虑是否安全 一定有值 防患于未然
-- '??' 合并空选项 必须提高 ?? 的优先级
五、分支结构
分支结构也就是if语句,和switch语句
分支结构 if语句
-
条件语句没有 () ,可以写 但不推荐写
-
分支结构必须有 {}
-
没有 非零即真的概念,只有 true 和 false
let a = 13 if a < 14 { print("小,很小,非常小") } else { print("大,很大,非常大") }
if let
模拟网络请求
let urlString = "http://www.zxhkit.com" let url = URL(string: urlString) if url != nil { let req1 = URLRequest(url: url!) } if let url2 = URL(string: urlString) { let req2 = URLRequest(url: url2) }
guard(守卫) let else
作用与if let 相反 , guard let 能够减少一层分支嵌套
let urlStr = "http://www.zxhkit.com" guard var url1 = URL(string: urlStr) else { //不希望guard 能够被穿透 //如果url1 为nil 就进入else 分支 会直接return return } let req = URLRequest(url: url1)
guard 多个可选值的判断
var age1: Int? = 15 var age2: Int? = 20 if age1 != nil && age2 == nil { } guard let ag1 = age1,let ag2 = age2 else { print("嘎嘎嘎") return; }
switch
switch在swift中和OC中略有不同
-
不需要写break
-
每个匹配项中至少有一段代码可以执行
-
可以判断任意类型
-
一次可以匹配多个值
-
在匹配项中可以声明临时变量,而且不需要加 {} 限制作用域
let x = "20000" switch x { case "20000","30000": print("架构师") case "18000": print("高级开发工程师") case "12000": print("中级开发工程师") case "6000": print("菜逼") default: print("逗比") }
六、循环
循环,基本没有变
func fiveDemo() { // 循环的范围可以直接定义出来使用 let range = 0...10 for i in range { print(i) } print("----------------------") //遍历0到10,不加包括10, 0..<10 表示不包括10 for i in 0...10 { print("i") } //对没有使用的变量或者常量在编译的时候可以忽略 for _ in 0..<10 { print("
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python 3 入门基础知识大全
- Nginx 基础知识从小白到入门
- SQL Server数据库入门基础知识
- css3笔记系列-1.css基础知识入门
- Java学习笔记(十)——Thrift入门及一些基础知识介绍
- 深度学习基础知识入门及案例代码实战-深度学习牛刀小试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏化思维
[美] 凯文·韦巴赫(Kevin Werbach)、[美] 丹·亨特(Dan Hunter) / 周逵、王晓丹 / 浙江人民出版社 / 2014-4 / 36.90
[内容简介] ●本书由开设了全世界第一个游戏化课程的沃顿商学院副教授凯文·韦巴赫和丹·亨特所著,第一次全面系统地介绍游戏化的理论,阐述了如何将游戏的理念应用到商业实践中。 ●作者指出,在商业竞争日益激烈的今天,传统的激励方式渐渐失效,未来的管理将更多地建立在员工和消费者的内在动机和自我激励上。这些制作精良、设计巧妙的游戏建立在多年来对人类动机和人类心理的研究基础之上,可以最大限度地激发......一起来看看 《游戏化思维》 这本书的介绍吧!