• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift面试题相关

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

面试题

①给一个数组,要求用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)

④ 简化代码

 

 

转载于:https://www.cnblogs.com/StevenHuSir/p/Swift_Interview.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift--enum继承protocol发布时间:2022-07-13
下一篇:
快捷搜索框(UISearchBar)简单实现 swift发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap