Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查对象是否不是swift中的类型

检查对象是否不是swift中的类型
EN

Stack Overflow用户
提问于 2019-02-16 21:02:37
回答 5查看 7.8K关注 0票数 10

我需要检查对象是否不是某个类型。我知道在Kotlin中,可以通过使用!is来检查类型是否为非类型。我想知道Swift中是否有类似的解决方案,或者如果不可能的话,我可以使用的变通方法?

Kotlin中的示例:

假设动物是不同动物的接口,并且有实现它的类,如CatDogHorseSpider等:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var animals = listOf<Animals>(Horse(), Cat(), Dog(), Spider())
var chosenAnimals = animals.filter { it !is Spider }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-02-16 21:16:46

使用swift语法,这是实现这一点的一种方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let animals: [Animals] = [Horse(), Cat(), Dog(), Spider()]
var chosenAnimals = animals.filter { type(of: $0) != Spider.self }

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var chosenAnimals = animals.filter { !($0 is Spider) }
票数 14
EN

Stack Overflow用户

发布于 2019-02-16 21:51:01

或者,您可以创建自己的isNot函数,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extension Animal {
    func isNot<T: Animal>(_ type: T.Type) -> Bool {
        return !(self is T)
    }
}

print(Horse().isNot(Fish.self)) // prints true
print(Horse().isNot(Horse.self)) // prints false
票数 4
EN

Stack Overflow用户

发布于 2019-02-16 21:10:28

您可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var chosenAnimals = animals.filter({!($0 is Spider)})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54727631

复制
相关文章
Javascript中对象如何检查key(键)是否存在
如果要特别测试对象实例的属性(而不是继承的属性),请使用hasOwnProperty:
IT工作者
2022/02/09
26.7K0
是否还在疑惑Vue.js中组件的data为什么是函数类型而不是对象类型
要理解本篇文章,必须具备JavaScript中基本数据类型和引用数据类型的概念,大家可以花两分钟看一下,瞬间就能理解——面试题被问到再也不慌,深究JavaScript中的深拷贝与浅拷贝,看完这篇文章以后,再来看这篇文章就会很容易理解了。
@零一
2021/01/29
3.5K0
是否还在疑惑Vue.js中组件的data为什么是函数类型而不是对象类型
JS中,如何检查对象是否为数组?
最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。
前端小智@大迁世界
2021/02/02
7.2K0
JS中,如何检查对象是否为数组?
PHP检查对象或类中是否存在属性
$obj = \app\common\library\Email::instance(); $obj->p=889; if(isset($obj->p)){ echo 66; }else{ echo 99; } die; isset既可以判断对象的属性是否存在,也可以判断数组的键名是否存在 未经允许不得转载:肥猫博客 » PHP检查对象或类中是否存在属性
超级小可爱
2023/02/20
4.2K0
Swift 中的幻象类型
模糊的数据可以说是一般应用程序中最常见的错误和问题的来源之一。虽然 Swift 通过其强大的类型系统和完善的编译器帮助我们避免了许多含糊不清的来源——但只要我们无法在编译时保证某个数据总是符合我们的要求,就总是有风险,我们最终会处于含糊不清或不可预测的状态。
Swift社区
2022/05/19
1.5K0
Swift 中的类型占位符
Swift 的类型推断能力从一开始就是语言的核心部分,它极大地减少了我们在声明有默认值的变量和属性时手动指定类型的工作。例如,表达式var number = 7不需要包含任何类型注释,因为编译器能够推断出值7是一个Int,我们的number变量应该被相应的类型化。
韦弦zhy
2022/04/26
1.5K0
STL:调用empty()而不是检查size()是否为0
另一种方式是,调用empty()函数。各类STL容器都提供了empty()函数,如果为空,则empty()返回true;否则返回false。
用户6557940
2023/03/05
1.3K0
STL:调用empty()而不是检查size()是否为0
Swift 中的类型占位符
Swift 的类型推断能力从一开始就是语言的核心部分,它极大地减少了我们在声明有默认值的变量和属性时手动指定类型的工作。例如,表达式var number = 7不需要包含任何类型注释,因为编译器能够推断出值7是一个Int,我们的number变量应该被相应的类型化。
Swift社区
2022/07/05
1.7K0
Swift 中的 Phantom(幻象)类型
模糊的数据可以说是一般应用程序中最常见的错误和问题的来源之一。虽然 Swift 通过其强大的类型系统和完善的编译器帮助我们避免了许多含糊不清的来源——但只要我们无法在编译时保证某个数据总是符合我们的要求,就总是有风险,我们最终会处于含糊不清或不可预测的状态。
韦弦zhy
2022/04/26
8970
Swift — 面向对象中类和对象的属性
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115585.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/10
2.6K0
检查图片是否损坏、图片后缀是否与实际图片类型对应 - Python
日常工作中,时常会需要用到图片,有时候图片在下载、解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都需要一个检查脚本;
HoLoong
2020/09/21
3.3K0
检查图片是否损坏、图片后缀是否与实际图片类型对应 - Python
JavaScript中的类型检查有点麻烦
JS 的动态类型有好有坏。好的一面,不必指明变量的类型。不好的是,咱们永远无法确定变量的类型。
前端小智@大迁世界
2022/06/15
1.4K0
JavaScript中的类型检查有点麻烦
Swift 中的抽象类型和方法
在面向对象的编程中,抽象类型提供了一个基础实现,其他类型可以从中继承,以获得某种共享的、共同的功能。抽象类型与普通类型的区别在于,它们永远不会被当作原样使用(事实上,一些编程语言甚至阻止抽象类型被直接实例化),因为它们的唯一目的是作为一组相关类型的共同父类。
Swift社区
2022/05/19
7670
如何检查一个对象是否为空
检查一个数组为空很容易,直接调用 length 方法即可,那么如何检查一个对象是否为空呢 ❓
JS菌
2019/04/10
4K0
如何检查一个对象是否为空
Swift 中的抽象类型和方法
在面向对象的编程中,抽象类型提供了一个基础实现,其他类型可以从中继承,以获得某种共享的、共同的功能。抽象类型与普通类型的区别在于,它们永远不会被当作原样使用(事实上,一些编程语言甚至阻止抽象类型被直接实例化),因为它们的唯一目的是作为一组相关类型的共同父类。
韦弦zhy
2022/03/30
8180
Python小姿势 - # Python中的类型检查
```python 声明一个整型变量 num: int 声明一个字符串变量 name: str
不吃西红柿
2023/05/04
6660
LeetCode 2042. 检查句子中的数字是否递增
句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。 每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。
Michael阿明
2022/01/07
1.6K0
LeetCode 2042. 检查句子中的数字是否递增
育种中如何检查系谱是否有错误
这里推荐我写的R包learnasreml中的check_pedigree函数,简单好用,结果友好。能够检查:
邓飞
2021/12/12
2.8K0
点击加载更多

相似问题

检查对象是否为Swift中的给定类型

14113

Swift:检查对象是否不是类的实例

10

动态检查Swift 2中的对象类型

25

swift中对象类类型的NSPredicate检查

10

检查Swift对象是否是给定元类型的实例

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文