相关疑难解决方法(0)

如何使用%作为Swift 3中的后缀一元运算符来计算百分比,并且仍然可以使用%作为模数?

我将%令牌声明为后置修复操作符,以便计算百分比但Xcode报告

`% is not a postfix unary operator` 
Run Code Online (Sandbox Code Playgroud)

我的测试代码下面是基于发现的例子在这里.我还检查了Apple的最新文档,其中包含了操作员声明语法,但它没有解释为什么Xcode会抱怨.

如何计算使用百分比%?假设我让它工作,那么我将如何恢复使用%同一类中其他地方的另一个函数的模运算?

有人可以根据我在Playground中的代码提供一个工作示例吗?

1.%含义百分比

postfix operator %

var percentage = 25%

postfix func % (percentage: Int) -> Double {
    return (Double(percentage) / 100)
}
Run Code Online (Sandbox Code Playgroud)

2.%表示余数

let number = 11
let divisor = 7

print(number % divisor)
Run Code Online (Sandbox Code Playgroud)

ios swift

5
推荐指数
1
解决办法
5149
查看次数

如何从同一个Swift项目中的任何文件访问自定义函数?

如果在文件范围声明了自定义函数的后缀运算符 - 就像我在一篇文章中那样 - 必须有一种方法可以从同一个Xcode项目中的另一个Swift 3文件访问这样的函数.

Apple关于自定义函数的文档声明" 新运算符在全局级别声明...... "因此我可以假设Swift 3的创建者认为对全局访问自定义函数很重要.但是对于Swift的新手来说,如何做到这一点并不是不言而喻的.

基于我之前接受的答案中的代码(这里)我需要做什么才能从项目中其他地方的另一个文件访问自定义函数?


最终编辑

解决方案非常简单(参见接受的答案),希望其他Swift新手也可能觉得它很有用.

一个postfix operator %全局声明的同时ExtensionInt读取Int其他文件的变量.的扩展DoubleCGFloat以及Int也是可能的.

CustomOperators.swift

import UIKit

postfix operator %

extension Double {
    static postfix func % (n: Double) -> Double {
     return Double(n) /  100
    }
}

extension Int {
    static postfix func % (n: Int) -> Double {
        return Double(n) /  100
    } …
Run Code Online (Sandbox Code Playgroud)

swift swift3

4
推荐指数
1
解决办法
2172
查看次数

成员运算符“==”必须至少有一个类型参数

我正在尝试在 equalityClass 中实现 Equatable 协议,但显示成员运算符 '==' 必须至少有一个类型为 'eqaualityClass' 的参数。有人可以解释这里出了什么问题吗?

protocol Rectangle: Equatable {

    var width: Double { get }
    var height: Double { get }

}

class eqaualityClass:Rectangle{

    internal var width: Double = 0.0
    internal var height: Double = 0.0

      static func == <T:Rectangle>(lhs: T, rhs: T) -> Bool {
          return lhs.width == rhs.width && rhs.height == lhs.height
     }
}
Run Code Online (Sandbox Code Playgroud)

swift swift3

4
推荐指数
1
解决办法
3634
查看次数

标签 统计

swift ×3

swift3 ×2

ios ×1