我对编程很新,而且我是Swift 2.0的新手,所以这可能是一个愚蠢的问题。 但我有:
struct Geometry {
static let Pi : Double = 3.14159265358979323846
func get_angle(x1: Int, y1: Int, x2: Int, y2:Int) -> Double {
...
func get_angle(point1 : CGPoint , point2 : CGPoint) -> Double {
我可以通过" Geometry.Pi"来访问Pi。它工作得很好。 但由于某种原因,我无法访问get_angle函数。 我试过" Geometry.get_angle(x1,y1:y1,x2:x2,y2:y2)"但后来它抱怨"额外的争论' y1'在电话" 我试图通过在声明函数之前添加_来删除所有函数变量名,如下所示:
func get_angle( x1: Int, _ y1: Int, _ x2: Int, _ y2:Int) -> Double {
并称之为:" Geometry.get_angle(x1,y1,x2,y2)" 但后来抱怨"无法调用' get_angle'具有类型的参数列表(' Int',' Int',' Int',' Int')" 为什么我不这样做?那个想法有点...... 奇怪的是,当我开始键入" Geometry.get_an"出现了意见框,看起来很奇怪..我在这里有一张照片:http://imgur.com/ebciWjo如果有人想看看。它给了我选项:Geometry.get_angle(Geometry),但Geometry不是变量类型。
我本来想要做的是将一些全局函数和全局变量放在"常量" /"普通" - 像其他语言一样的文件.. 我知道每个函数基本上都是一个全局函数,只要它没有标记为私有。 我用过这个: Global constants file in Swift 作为我创建几何图形时的参考..
任何人都可以帮我在包含变量和函数的swift 2.0中创建常量/通用文件吗?
编辑: 只是为了澄清,如果我创建一个Geometry变量,我可以很好地访问该函数,但这不是我想要的。我想要全球功能。 此外,我尝试将它们从结构中移出,但出现相同的错误,"无法调用' get_angle'使用参数列表类型(' Int',' Int',' Int',' Int')"
答案 0 :(得分:3)
您需要创建函数static
:
struct Geometry {
static let Pi : Double = 3.14159265358979323846
static func get_angle(x1: Int, y1: Int, x2: Int, y2:Int) -> Double {
return 1
}
}
当函数不是静态时,你可以这样调用它:
Geometry().get_angle( ... )
...但是这会创建一个新的Geometry
结构,在您的情况下不需要。