我正在尝试学习 Swift,并且正在研究一个在 Swift 2中工作的旧的Generic示例
func increment<T: Strideable>(number: T) -> T {
    return number + 1
}

现在在Swift 4中它抱怨道

'+' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics

有人可以解释为什么我收到这个错误以及我做错了什么?谢谢.

您可以简单地使用Strideable.advanced(by :),而不是使用运算符.
func increment<T: Strideable>(number: T) -> T {
    return number.advanced(by: 1)
}

increment(number: 2) //returns 3
increment(number: 2.5) //returns 3.5

swift – 不可用:对于混合型算术,请使用显式类型转换或Strideable方法的更多相关文章

  1. js中‘!.’是什么意思

  2. InnoDB 和 MyISAM 引擎恢复数据库,使用 .frm、.ibd文件恢复数据库

  3. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  4. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  5. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  6. 宝塔Linux的FTP连接不上的解决方法

    宝塔Linux的FTP连接不上的解决方法常见的几个可能,建议先排查。1.注意内网IP和外网IP2.检查ftp服务是否启动 (面板首页即可看到)3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 (如是腾讯云/阿里云等还需检查安全组)4.是否主动/被动模式都不能连接5.新建一个用户看是否能连接6.修改ftp配置文件 将ForcePassiveIP前面的#去掉 将19

  7. 扩展element-ui el-upload组件,实现复制粘贴上传图片文件,带图片预览功能

  8. 微信小程序canvas实现水平、垂直居中效果

    这篇文章主要介绍了小程序中canvas实现水平、垂直居中效果,本文图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  10. H5最强接口之canvas实现动态图形功能

    这篇文章主要介绍了H5最强接口之canvas实现动态图形功能,需要的朋友可以参考下

随机推荐

  1. 适用于Xcode,IntelliJ Idea和Phonegap(又名Cordova)的gitignore模板

    有没有人有一个很好的预先推出的gitignore文件用于使用Xcode和PhoneGap的iPhone开发?

  2. swift – 不可用:对于混合型算术,请使用显式类型转换或Strideable方法

    我正在尝试学习Swift,并且正在研究一个在Swift2中工作的旧的Generic示例现在在Swift4中它抱怨道有人可以解释为什么我收到这个错误以及我做错了什么?

  3. android-studio – IDEA中Gradle自动完成的位置在哪里?

    解决方法对于Groovy插件,它可能是Cucumber.我知道Gradle使用Groovy的一些技术和语法,所以我尝试在第一次尝试时安装一些Groovy插件并取得成功.安装此插件的步骤:>在MacOS上:首选项…

  4. android – IntelliJ IDEA认为我的项目的一部分是subversion而不是git,如何解决这个问题?

    解决方法在“设置”中检查项目配置>版本控制.这是配置目录/vcs映射的位置.删除可能存在的任何SVN映射,并确保整个项目映射到Git.顺便说一句,我不知道这怎么可能发生.

  5. Android Studio在启动时修改./idea/vcs.xml

    因为不建议忽略AndroidStudio中的整个.idea文件夹,所以大多数文件都由git跟踪.然而奇怪的是,每次启动后,即使已经存在数十个,也会向vcs.xml添加相同的行.这很快变老了.这种行为是有目的还是仅仅是一个错误?AndroidStudio还可以在启动时阻止它进行此类修改吗?

  6. android – 如何使用IntelliJ IDEA正确配置AdMob?

    我正在尝试将AdMob合并到我的Android应用程序中.我正在使用IntelliJIDEA进行开发,我似乎无法正确设置我的项目.此时我已完成以下操作:>是否需要下载AdMobSDK所需的所有初步步骤.>按照指示here,试图为IntelliJIDEA增加它们.我已将AdMobSDK的单入口模块库依赖项添加到我的项目中.如果我尝试在代码中使用它,IDE看起来像是没有问题识别SDK中的类.但是,它无

  7. android-studio – Android Studio / IntelliJ IDEA编辑器中的中心代码

    我想将我的代码集中在AndroidStudio的/Intellij编辑器中,就像在distractionFree模式下完成一样.现在如果它始终在编辑器的左侧对齐,但我想将它放在窗口的中心.我在设置中找不到任何选项.这可以在不进入无牵引模式的情况下实现吗?

  8. Android图书馆项目Jar IntelliJ IDEA 11

    我正在使用IntelliJIDEA11.如何为我的Android图书馆项目创建一个JAR文件?我有一个相同的Android库项目及其JAR文件.我已经设法从模块设置–>项目设置–>Artifacs->创建一个JAR文件.我试图将我的Jar文件与原始文件进行比较,内容不同.是否可以确认我的程序是否正确?解决方法您可以按照这个link1创建jar来防止这样做.如果您在遵循以前的链接时遇到问题,请遵守此link2

  9. 在Android Studio中的Javadoc中的intellij-idea – 标签

    如果我在AndroidStudio和其他Jetbrains产品中重新格式化代码,那么在某些地方创建了一个小标签.我该如何防范?解决方法标签在空行上生成,以便它们显示在javadoc中.如果你想,你可以在重新格式化代码时关闭它.在AndroidStudio中,转到文件–>设置–>代码样式–>Java–>JavaDoc选项卡–>取消选中生成“”空线这里是文档的样式,没有段落标签,右边是快速文档窗口中的文本.只要考虑到这一点.

  10. android – 强制Idea生成R.Java文件的最简单的方法是什么?

    我试图使用intellij想法运行Android示例应用程序,而R.Java文件缺少表单记事本样本源目录.解决方法确保您的项目根目录中有gen文件夹.如果没有,请自己做一个.

返回
顶部