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

最低0.47元/天 解锁文章
3707

被折叠的 条评论
为什么被折叠?



