好久没来了,趁着新语言Swift发布,继续钻研中!

Create Class 创建类 (重载效果)

// Create Class 创建类
class MyClass {// Properties 成员变量
    init() {// Constructor 构造函数
    }// Method 成员方法
    func doIt() {println("doIt")}func doIt() -> Int {return 0}func doIt(a:Int) -> Int {return a}func doIt(a:Int, b:Int) -> Int {return a + b}func doIt() -> String {return ""}func doIt(a:String) -> String {return a}func doIt(a:String, b:String) -> String {return a + b}}// Create / Using an Instance 创建 / 使用 一个实例
var a = MyClass()
a.doIt("Wang ", b: "Zhipeng")

Enums 枚举

// Enums 枚举
enum ComcSoftType: Int {case DevelopmentEngineer = 1case TestEngineer = 2}var myType = ComcSoftType.DevelopmentEngineer

Declaring Variables 变量的声明 (可选变量)

// Declaring Variables 变量的声明
var mutableDouble:Double = 1.0
mutableDouble = 2.0let constantDouble:Double = 1.0
//constantDouble = 2.0 Error 错误

var autoDouble = 1.0// Optional Value 可选变量 (新机制)
var optionDouble:Double? //此刻 optionDouble 根本没有分配内存,对其取地址: &optionDouble 为NULL
optionDouble = 1.0 //这时候开始 optionDouble 才会开始分配内存if let defineDouble = optionDouble {println("已经分配内存")
}
else {println("没有分配内存")
}

Control Flow 控制流

// Control Flow 控制流
var condition = true
if condition {println("正确")
}
else {println("错误")
}var val = "Four"
switch val {case "One":"One"case "Two", "Three":"Two, Three"default:"default"
}// omits upper value, use ... to include  省略了上限值,使用 ... 包括
for i in 0..3 {println("i = \(i)")
}for var j = 0; j < 3; ++j {println("j = \(j)")
}// While
var n = 2
while n < 100 {n = n * 2
}
println(n)var m = 2
do {m = m * 2
} while m < 100
println(m)

String Quick Examples 字符串的例子

// String Quick Examples 字符串的例子
var firstName = "Zhipeng"
var lastName = "Wang"
var helloString = "Hello, \(lastName) \(firstName)"var tipString = "2499"
var tipInt = tipString.toInt()extension Double {init (string:String) {self = Double(string.bridgeToObjectiveC().doubleValue)}
}
tipString = "24.99"
var tipDouble = Double(string:tipString)

Array Quick Examples 数组的例子

// Array Quick Examples 数组的例子
var person1 = "One"
var person2 = "Two"
var array:String[] = [person1, person2]
array += "Three"
for person in array {println("person: \(person)")
}
var personTwo = array[1]
println("personTwo: \(personTwo)")

Dictionary Quick Examples 字典的例子 (泛型效果)

// Dictionary Quick Examples 字典的例子
var dic:Dictionary<String, String> = ["One": "1","Two": "2","Three": "3"]
dic["Three"] = "4" // Update Three
dic["One"] = nil // Delete One
for(key, value) in dic {println("key: \(key), value: \(value)")
}

Function 函数

// Function 函数
func getPirces() -> (Double, Double, Double) {return (1.1, 1.2, 1.3) // tuple 元组
}
// 取出元组
var (one, two, three) = getPirces()
println("One = \(one), Two = \(two), Three = \(three)")func getSum(numbers:Int...) -> Int {var sum = 0for number in numbers {sum += number}return sum
}
getSum()
getSum(1, 3, 5, 7, 9)

函数嵌套

// 函数嵌套
func nestedFunction() -> Int {var x = 0//
    func add() {x += 1}//
    add()return x
}

函数传递

// 函数传递
func makeIncrementer() -> (Int -> Int) {func addOne(number:Int) -> Int {return number + 1}return addOne
}var increment = makeIncrementer()
increment(1)func makeIncrementer2() -> ((String, String) -> String) {func and(a:String, b:String) -> String {return a + b}return and
}
var increment2 = makeIncrementer2()
increment2("Wang ", "zhieng")func lessThanOne(number:Int) -> Bool {return number < 1
}
func makeIncrementer3(list:Int[], condition:Int -> Bool) -> Bool {for number in list {if condition(number) {return true}}return false
}
makeIncrementer3([1,2,3,4,5], lessThanOne)

Extends 继承 (多态效果)

// Extends 继承 (多态效果)
println("======================= Extends 继承")
class People {// Eat 吃
    func eat() {println("吃")}// Sleep 睡
    func sleep() {println("睡")}// Work 工作
    func work() {println("工作")}// Said 说
    func said() {println("我是人")}
}class Chinese:People {// Said 说override func said() {println("我是中国人")}
}class Americans:People {// Said 说override func said() {println("我是美国人")}
}class Alien {// Eat 吃
    func unknown() {println("外星人")}
}// 不支持多继承
//class futureGenerations:Chinese, Americans { // Multiple inheritance from classes 'Chinese' and 'Americans'
//    // Said 说
//    override func said() {
//        println("我是中国人和美国人的后代")
//    }
//}// 多态 必要条件:1.继承 2.重写 3.父类引用指向子类对象
var people = People()
people.said()
people = Chinese()
people.said()
people = Americans()
people.said()
//people = Alien() Error 'Alien' is not convertible to 'People'
//people.said()

var chinese = Chinese()
chinese.said()var americans = Americans()
americans.said()

转载于:https://www.cnblogs.com/thefeelingofsimple/p/3768725.html

Swift的笔记和参考相关推荐

  1. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  2. swift学习笔记《5》- 实用

    title: swift学习笔记<5>- 实用 date: 2016-09-21 21:39:00 categories: 学习笔记 Swift学习 tags: Swift 1.setVa ...

  3. Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

    Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePic ...

  4. Swift tips 笔记

    Swift tips 笔记 CaseIterable协议 enum遵守了CaseIterable协议可以实现遍历枚举值 enum Season : CaseIterable {case spring, ...

  5. Swift学习笔记-协议(Protocols)

    1.0 翻译:geek5nan 校对:dabing1022 2.0 翻译:futantan 校对:小铁匠Linus 定稿:shanksyang 本页包含内容: 协议的语法(Protocol Synta ...

  6. Swift学习笔记8--Optional Chaining

    Optional Chaining 自判断链接(Optional Chaining)是一种可以请求和调用属性.方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(  nil ).如果自 ...

  7. Swift学习笔记 ——(一)

    前言 作为一个前端开发者,经常与javaacript(以下简称:js)打交道.最近想了解一下ios开发,前两天看了一下objective-c(以下简称:oc),相对于js来说还是有很多不同的,但是语言 ...

  8. Java web程序设计(笔记无参考价值)

    注:此博客为学习笔记,无参考价值! 目录 第一次 第二次 第三次 第四次 第五次 第六次 第七次 第八次 第九次 第十次 Javaweb技术背景 Internet上供外界访问的Web资源分为:静态we ...

  9. FPGA:zcu102学习笔记(参考自xing见博客)

    1,概述 有一个计划是打算做一个摄像头的驱动与显示. 但是实际上手上只有一个zcu102开发板,没有摄像头,也没有上位机,自己也不会写.所以就将方案阉割成将录制好的视频放在SD卡里面,然后从SD卡里面 ...

最新文章

  1. c#操作oracle的通用类
  2. 窄带信号和宽带信号的区别和联系
  3. C#中oracle数据库的连接方法
  4. Mean Shift算法(2)在OpenCV上的实现目标跟踪——直方图反向投影
  5. 从页面底部向上弹出dialog,消失时逐渐向下(转)
  6. 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
  7. openwrt打印机支持列表_共享打印机的三种安装连接方法
  8. 屏幕分辨率修改工具SwitchResX for Mac
  9. MATLAB DBSCAB简介
  10. linux文件复制覆盖命令
  11. 高性能计算机介绍,曙光个人高性能计算机介绍
  12. mysql 免安装版安装
  13. react组件设计原则_可靠React组件设计的7个准则之封装
  14. python(25)- 面向对象补充Ⅰ
  15. 腾达路由器dns服务器未响应,荣耀猎人游戏路由怎么设置
  16. 8位串行输入串行输出移位寄存器的Verilog设计
  17. mint-ui 中 popup 组件的 closeonclickmodal 无效
  18. 【计算机组成原理】期末复习
  19. 有源低通滤波器 vs. 有源带通滤波器 vs. LC滤波器
  20. 东北大学软件学院数据库系统概述——常用的聚合函数

热门文章

  1. 不同操作系统打开文件浏览器(资源管理器)的方式
  2. 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理(转)
  3. 和菜鸟一起深入学习国嵌实验之简单Makefile
  4. 如何在Java中使用表达式_如何在java中计算表达式?
  5. java 实现 常见排序算法(二) 插入排序
  6. 面试官:了解二叉树吗,平衡二叉树,红黑树?
  7. 修改MyEclipse/Eclipse左侧文字大小(MacOS/Windows)
  8. 并发编程之多线程线程安全(下)
  9. android 加载显示富文本——TextView显示富文本和WebView显示富文本,WebView显示图片适配屏幕宽度
  10. SpringBoot Redis分布式锁