• Swift面试题相关


    面试题

    ①给一个数组,要求用swift写一个函数,交换数组中的两个元素。

        //给一个数组,要求用swift写一个函数,交换数组中的两个元素。
        var nums = [1,2,3,4,5,6,7]
        //        func swap(_ nums: inout [Int], _ a : Int, _ b : Int) {
        //            let temp = nums[a]
        //            nums[a] = nums[b]
        //            nums[b] = temp
        //        }
        
        //2.泛型
        //        func swap<T>(_ nums: inout [T], _ a : Int, _ b : Int) {
        //            let temp = nums[a]
        //            nums[a] = nums[b]
        //            nums[b] = temp
        //        }
        //
        func swap<T>(_ nums: inout [T], _ a : Int, _ b : Int) {
            let count = nums.count
            //安全判断
            if a == b || a < 0 || a > count - 1 || b < 0 || b > count - 1   {
                return
            }
            (nums[a],nums[b]) = (nums[b],nums[a])
        }

    ②循环引用

    //循环引用(属性前+weak修饰)
    class Node {
        var value = 0
        weak var prev : Node?
        weak var next : Node?
        init(_ value : Int) {
            self.value = value
        }
        deinit {
            print("deinit")
        }
    }
    
    let a = Node(0)
     let b = Node(1)
            
    a.prev = b
    b.next = a

    使用 swift实现一个函数,输入是任一整数,输出要返回输入的整数+2

    简单:
    func addTwo(input : Int) -> Int {
            return input + 2
        }
    //什么是柯里化? //柯里化指的是从一个多参数函数变成一连串单参数函数的变换
        func add (input : Int) -> (Int) -> Int {
            return { value in
                return input + value
            }
        }
    let addTwo = add(input: 2)
    let oupPut = addTwo(8)
    print(oupPut)
    
    class BankCard {
            //余额
            var balance : Double = 0.0
            //存钱方法
            func deposit(amount: Double) {
                balance += amount
                print("deposit:(balance)")
            }
            
        }
    
    //柯里化?
    let card = BankCard()
    card.deposit(amount: 100)
            
    let deposit = BankCard.deposit
    deposit(card)(100)

    ④ 简化代码

     

  • 相关阅读:
    实时日历
    添加与删除
    php 变量 循环关键词以及方法
    php中各种操作字符串和时间戳的代码关键词
    php中数组相关
    php中普通方法和静态方法的区别以及抽象类和接口
    php设计模式 工厂模式和单例
    面对对象7大原则整理
    PHP中include与require的特点和区别说明
    php基础运算符语句
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/Swift_Interview.html
Copyright © 2020-2023  润新知