zoukankan      html  css  js  c++  java
  • 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)

    ④ 简化代码

     

  • 相关阅读:
    C#入门经典中的SelectionFont属性为null
    C#键盘事件处理
    C# TextBox中的Validating与Validated事件[转]
    System.Diagnostics.Process 执行.EXE
    USB HID usage table
    ADPCM编码和解码
    Load$$ execution region symbols
    Astyle编程语言格式化工具的说明
    RLE行程长度编码压缩算法
    Django文档阅读之执行原始SQL查询
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/Swift_Interview.html
Copyright © 2011-2022 走看看