Swift快速笔记

介绍

  1. 基于Cocoa 和Cocoa Touch框架
  2. 采用Objective-C的命名参数以及动态对象模型。
  3. 支持代码预览
  4. 可以用于开发一套完整的操作系统。

基础语法

  1. 导入包 直接 import 不需要加 #
  2. var 关键字,表示定义变量的关键字(类型自动追踪) ;
  3. let 关键字,常量
  4. 单行注释 // 多行注释 /* */
  5. print(“直接输出 ,不需要”);
  6. Swift 是强语法,定义变量必须指定一个值,不指定就报错,不允许风险问题存在
  7. class是保留字,但不是一个有效的标识符(不要使用就对了)
  8. 在声明中使用关键字
    1. class deinit enum extension func import init internal let
    2. operator private protocol public static struct
    3. subscript typealias var
  9. 在语句中使用关键字
    1. break case continue default do else fallthrough for
    2. if in return switch where while
  10. 在表达式和类型中使用关键字
    1. as dynamicType false is nil self Self super true _COLUMN_ _FILE_ _FUNCTION_ _LINE_
  11. 在特定情况下使用的关键字
    1. associativity convenience dynamic
    2. didSet
    3. lazy
    4. left
    5. mutating
    6. none
    7. nonmutating
    8. optional
    9. overide
    10. postfix
    11. precedence
    12. prefix
    13. Protocol
    14. required
    15. right
    16. set
    17. Type
    18. unowned
    19. weak
    20. willSet
  12. 空格仅包含空格
  13. 字面量

数据类型

都是以 大写开头

  1. Int : Int32 Int64 整数
  2. Uint : 无符号整数 ,同样有 Uint32 Uint64
  3. Float 表示32位浮点数
  4. Double 表示64位浮点数
  5. Bool 代表布尔值
  6. String 这是有序的字符集合 eg: “hello World”
  7. Character 这是一个单字符的字符串, eg: “A”
  8. Optional 这表示可以容纳一个值活没有任何值的变量
  9. 32位平台上 Int大小与Int32 的大小相同

  10. 绑定值
    Int8 1byte -127~127
    UInt8 1byte 0~255;

变量

可以使用简单活 Unicode 字符来命名变量。
4. var 人名 = “JOKER”
5. var ❀ = “花”

  1. var name :String = “JOKER”
  2. var high : dataType =169
  3. 打印变量
    1. print(“my name is (name),and my age is (age)”)

可选类型

  1. Optional

  2. 声明 可选类型

  3.  > var name : String?   //问号前 没有空格
     >		name ="JOKER"
     > print(name) // ====>Optional("JOKER")
     > //可选类型使用数据值的时候,需要进行 解包
     > print (name!)  // 用 ! 强制解包 ====》 JOKER
     > var name : String!  //使用 ! 声明变量为可选类型,可以自动解包
     > print(name) ===> JOKER
    
  4. 可选绑定,输出的时候 如果 为 null值 ,则直接不输出该句。

Swift 常量

  1. let 声明
    let name = "JOKER"
    let age: Int=10
    let weight : Float =169.5
    

字面量

就是 C语言中的 常量
布尔值
> true false nil
范围值
(a…b) a~b 包含a 和b
(a…<b) 包含a 不包含b

流程控制语句。

  1. if …else…
  2. switch
	if 条件表达式 { //必须有大括号
	
	}else {
		
	}
	switch color {
		case 0:
			print("red")
		 	fallthrough //继续往下走
		case 1:
			print("blue")  // 默认 有 break; 添加break 也不会报错。
		default:
			print("other");
		 
	}
	for var i=0 ; i<10 ; i++{
		print ("i = \(i)")
	}
	var number =10;
while number <20 {
	print ("number = \(number)" )
	number--   //--   ++  前后多不能 加空格
}

repeat {
	number++  //   错误实例: number ++
	print("repeat  number \(number)")
} while number <20

 for index in 1...10{
 }
 //不需要 index值时 可以用 _ 代替
 for  _ in 1..10{  

字符串

  1. 创建字符串
  2. var name : String = "JOKER"
  3. var age : String = 18
  4. name+ = age
  5. print(name) ===> JOKER18

数组

对象类型

// 构建空数组对象
	var someArray = [Int]()
	//指定 初始长度,初始值
	 var array1 =[Int](count:10,repeatedValue:0)
	 //指定数组元素
	 var array2= [1,2,3,4,5]

	//不可改变数组
	let array3= [12,4,6,7]
	//访问数组元素
	array3[1]
	//遍历 数组
	for value in array3{
		print("value \(value
va)")
	}

  1. 元组
 for (myIndex,myValue) in array3.enumerate(){
 	print("enume array3[\(myIndex)] = \(myValue)")
 }

集合

集合就是 set类型的对象,表示的是一组无序的相同类型的数据集

  1. 创建集合
    	// 使用Set的构造函数,构建一个集合对象
    	var myTest1 =Set<Int>();  //构建一个空的集合对象。
    	myTest1 = [1,4,6,7,8]; //存储时 无序的。
    	
    	var mySets ; Set = [12,3,5,7]
    

字典

{"key1":"value1","key2":"value2"}
  1. 声明一个字典类型的变量
    var dic2: [int:int] = [1:10,2:30,3:30]
    var dic3= Dictionary<String,String>()
    dic3=["key1":"value1"]

  2. 访问字典
    dic["key1"]

  3. 遍历字典

    for (key,value) in dic3{
    	 print("\(key) : \(value)")
    } 
    
  4. 构造体类型

    	var studentMessage: (String,String) = ("joker","beijing")
    	studentMessage.0   ==>>joker
    	studenMessage.1   ====>> beijing
    
    

枚举

C 语言 enum WeekDay{
Mon,Fri
}
Swift :
enum WeekDay{
case Mon
case Fri

}

  1. 使用

    var birthDay: WeekDay = WeekDay.Mon

  2.  switch birthDay{
     	case .Mon
     		print("星期一")
     }
    
    
  3. 关联值

enum Student{
	case SmallStudent(String ,String,String)
	case BabybStudent(Int,Int,Int)
	
}

var xiaoMing =Student.SmallStudent("one","Two","THree")

switch xiaoMing{
	case .SmallStudent(let word1,let word2,let word3):
		print(”今天学了 3个单词\(word1)  \(word2)“)
}
  1. 原始值
enum Color: Int{
	case RED = 8
	case Blue 
	case Yellow
}
Color(rawValue:10) ==>> Yellow

函数

  1. 使用 func 关键 开始定义函数
 func func1(){
 	print("无参数,无返回值的函数")
 }
	func func2()-> String{
		print("无参数 ,,有返回值 ,返回值为 字符串")
	}
	func func3(num1:Int,num2 Int)-> Int{
		return num1+ num2
}
	//使用 元组 作为函数的返回值类型
	
	func func4()->(Int,Int){
		return (5,7)
	}
	//调用
	let result =func4
	result.0  ===> 5
	result.1 ===> 7
  1. 允许函数定义标签

func fun6(first num1:Int,num2:Int,num3:Int) -> Int{
return num1+num2+num3
}

// 一般默认第一个形参变量名时不作为标签出现的,如果你希望第一个参数也有标签,可以在形参变量名之前加一个标签

func6(first:3,num2:6,num3:9)

  1. I/O 参数 ***inout *** 关键字

    func muSwap(num1:Int,num2:Int){

    }

闭包

自包含的函数代码块

  1. 闭包可以 自动根据上下文进行类型 推断,可以省略类型说明
  2. 可以使用闭包表达式进行优化
  3. 如果 闭包的语句只有一句,那么可以省略 return关键字

I/O参数

I/O 参数 (目的: 把形参生命为可以被修改的变量类型)
使用 inout 关键字

func mySwap(inout num1:Int,inout num2:Int){
	let temp = num1
	num1=num2
	num2 =temp 
}

var  a= 9
var b=100
mySwap($a,num2:&b)

print("a= \(a)  b= \(b)") 

===> a =100  b= 9

函数类型及 用法

// 使用 函数类型, 第一类型 int float double

	func mySum(num1: Int,num2:Int) ->Int{
	return num1+num2
}

 	var action : (Int, Int) -> Int = mySum
	// 可以使用 action 替代函数 mySum
	action(1,2)
	// 可以使用类型 作为函数的参数传递
	func thirdNumSum(yourAction:(Int,Int) -> Int,num1:Int, num2:Int ,num3:Int)->Int{
		
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值