Swift面试题2025(附答案)

该文章已生成可运行项目,
1、如下Swift的代码的输出结果是什么?请说明理由。
var arr1 = ["1", "2", "3"]
var arr2 = arr1
arr2.append("4")
print(arr1)

答:

输出结果是:1,2,3

此处考察的是Swift和OC中数组数据类型的区别(值类型与引用类型),因为在Swift中数组是值类型,所以当值类型赋值给变量时,它会创建一个新的数组赋值给arr2。

2、如下Swift代码运行会不会报错?请说明原因,如何解决此类问题?
let a: Double = 4.0
let b: Int = 2
let c = a + b

答:

上面的代码会报错,因为Swift是强类型语言,Double和Int类型之间的运算需要显示转换。

解决办法有以下三种:

// 方法一:显示类型转换
let c = a + Double(b)


// 方法二:自定义运算符
infix operator +: AdditionPrecedence
func +(lhs: Double, rhs: Int) -> Double {
    return lhs + Double(rhs)
}


// 方法三:写个Double类型的Extension
extension Double {
    func add(int: Int) -> Double {
        return self + Double(int)
    }
}
let c = a.add(b)
3、如下Swift代码运行会不会报错?请说明原因
struct Person {
	var name: string
	var sex: string
}

var arrTest: [AnyObject] = []
let
本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值