swift语法相关-1

  • 引用类型就是指针类型
  • 构造函数不需要要返回值
  • 扩充构造函数(不会)【也可以扩充字典转模型的构造函数】
  • 函数既可以作为某个函数的参数,也可以作为某个函数的返回值
  • [int] 表示数组类型,数组里面对象的类型是整型
  • 引用传递,就是指针传递
  • 结构体中的是值传递
  • oc中的dealloc方法就是swift中的析构函数(deinit)
  • swift既可以让类不继承父类,直接写class 类名{},也可以继承父类class 类名:父类{}

函数中数组的两种写法

本质: [Int] 和 Array 等价

let array = [12, 11, 3, 5, 8, 10, 22]


func getNumCount(nums : [Int]) -> (oddCount : Int, evenCount : Int) {

}

let count = getCount(array)


等价

let array = [12, 11, 3, 5, 8, 10, 22]

func getNumCount(nums : Array) -> (oddCount : Int, evenCount : Int) {

}
let count = getCount(array)


用可选类型 接收不同类型的赋值

本质: Int? 和 Optional 等价

let str = "123"
let age : Int? = Int(str) //语法糖的写法

等价

let str = "123"
let age : Optional = Int(str)


swift判断质数还是合数【自己独立思考做出来的】

// 质数是指除了1和它本身以外,不能被任何整数整除的数(质数必须是自然数,不包括负数或者小数)。
// 合数除能被1和他本身整除外,还可以被其他数整除的数
let nums = [1,5, 3, 4, 8, 22, 23,25]
func getNumCount(nums : [Int]) -> (zhishuCount : Int, heshuCount : Int) {
    var zhishuCount = 0
    var heshuCount = 0
    for num in nums {
        if num == 1{
             print("\(num)既不是质数也不是合数")
            continue;// 结束本次循环
        }
        for var i = 2; i < num; i++ {
            if num % i == 0{
                print("\(num)是合数")
                zhishuCount++;
                //精华:保证只要出现匹配的数字,直接跳出循环,防止多次记录质数的个数.
                //如22,会被2,11整除,所以会记录两次。利用break,被2整除直接跳出第二个for循环了
                break; //结束第二个for中的所有循环
            }else{
                print("\(num)是质数")
                heshuCount++;
                break;
            }
        }

    }
    return (zhishuCount, heshuCount)
}

let count = getNumCount(nums)
print("质数的个数是:\(count.zhishuCount),合数的个数是:\(count.heshuCount)")
// 等价上面的代码 print("质数的个数是:\(count.0), 合数的个数是:\(count.1)")



打印结果

1既不是质数也不是合数
5是质数
3是质数
4是合数
8是合数
22是合数
23是质数
25是质数
质数的个数是:3,合数的个数是:4

可选类型的练习

swift语法相关-1_第1张图片
52-001.jpg

is的用法

swift语法相关-1_第2张图片
52-02.png

as? as!的用法:

swift语法相关-1_第3张图片
52-03.png

函数的基本使用

swift语法相关-1_第4张图片
52-04.png
swift语法相关-1_第5张图片
52-05.png

函数的内部参数和外部参数

swift语法相关-1_第6张图片
52-06.png

函数的参数

swift语法相关-1_第7张图片
52-07.png
swift语法相关-1_第8张图片
52-08.png

函数作为另一个函数的参数、作为另一个函数的返回值

swift语法相关-1_第9张图片
52-09.png
swift语法相关-1_第10张图片
52-10.png

枚举类型的使用

swift语法相关-1_第11张图片
52-11.png

结构体的使用

swift语法相关-1_第12张图片
52-12.png

结构体的扩充(扩充构造函数)

swift语法相关-1_第13张图片
52-13.png
swift语法相关-1_第14张图片
52-16.png
swift语法相关-1_第15张图片
52-14.png
swift语法相关-1_第16张图片
52-15.png

结构体的扩充(扩充函数)

swift语法相关-1_第17张图片
52-17.png

类的基本使用

swift语法相关-1_第18张图片
52-18.png

字典转模型(KVC)

  • 使用kvc,类必须继承NSObject,因为字典转模型的函数setValuesForKeysWithDictionary属于NSObjct。
  • 必须调用super.init()
52-19.png

析构函数

swift语法相关-1_第19张图片
52-20.png

类的属性

swift语法相关-1_第20张图片
52-21.png

类的监听

swift语法相关-1_第21张图片
52-22.png
swift语法相关-1_第22张图片
52-23.png
swift语法相关-1_第23张图片
52-24.png

你可能感兴趣的:(swift语法相关-1)