我只是想知道......
let movie = item as? Movie
在此示例中,item
的类型为Movie
或其他类型。如果后者movie
将被赋予零值。因此movie
的类型为Movie?
。
现在看看下一个例子:
let movie: Movie?
movie = item as? Movie
假设movie
是一个类变量,我在其中一个类方法中指定了一些值。
对我而言,as? Movie
感觉有些多余,因为已知movie
类型为Movie?
。
Swift中是否有任何语法说:“将此对象向下转换为与我分配给它的对象相同的类型。如果这是一个可选类型并且向下转换失败,则分配nil。 “吗
我希望有类似的东西:
movie = item as?
或
movie =? movie
答案 0 :(得分:2)
现有答案正确地说明没有内置功能。但是,仅仅基于已经在此处编写的内容,可以定义一个中缀运算符long long CountZeroSubstrings(vector<int> A) {
int n = A.size();
vector<long long> S(n+1, 0);
for (int i = 0; i < n; i++)
S[i+1] = S[i] + A[i];
long long answer = 0;
unordered_map<long long, int> H;
for (int i = 0; i <= n; i++) {
if (H.count(S[i]))
answer += H[S[i]];
H[S[i]]++;
}
return answer;
}
,它实现了您在问题中描述的行为。例如:
=?
答案 1 :(得分:1)