Swift面试题相关

Posted stevenhusir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

④ 简化代码

技术分享图片

 

 

以上是关于Swift面试题相关的主要内容,如果未能解决你的问题,请参考以下文章

Java之String相关内容详解(字符串和字符串常量池)面试题

Java工程师面试题,二级java刷题软件

面试必备Swift 面试题及其答案

Java进阶之光!2021必看-Java高级面试题总结

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)RCE (远程代码/命令执行漏洞)相关面试题

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!