2016-11-16 68 views
-1

我就想不通了雨燕3.0的新的第一标签建议如何适用于returnTypes与布尔:在斯威夫特从一个函数返回一个布尔值3.0

var firstString = "string" 
var secondString = "thing" 

func areTheStringsAnagrams(first: String, second: String) -> Bool { 
    return first.characters.sorted() == second.characters.sorted() 
} 

areTheStringsAnagrams(first: firstString, second: secondString) 

为什么调用该函数未使用的?

的错误是:

/swift-execution/Sources/main.swift:11:1: warning: result of call to 'areTheStringsAnagrams(first:second:)' is unused areTheStringsAnagrams(first: firstString, second: secondString) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

虽然集中在NSLayoutConstraints以前的问题(即Result of call to [myFunction] is unused)在比较的Objective-C,目前的问题是窄的,因为它完全集中在函数调用在Swift 3.0中有returnTypeBool

+1

什么是你从编译器得到的错误? – Thilo

+0

此代码确实编译并正常工作。这个问题是关于什么的? –

+0

哪个功能未使用? –

回答

1

你不这样做,结果什么。

您可以分配结果:

let anagrams = areTheStringsAnagrams(first: firstString, second: secondString) 

如果您不需要的结果,你有两个选择。您可以分配到_

_ = areTheStringsAnagrams(first: firstString, second: secondString) 

,或者你可以标记与@discardableResult

@discardableResult 
func areTheStringsAnagrams(first: String, second: String) -> Bool { 
    return first.characters.sorted() == second.characters.sorted() 
} 

功能。在这种情况下,如果你忽视的结果我不会做最后的选择,究竟是什么叫它呢?

+0

感谢您的回答。真棒! – Eric

0

编译器告诉你,你正在调用一个返回值的函数,但是你没有使用该值。这可能是开发者方面的错误,所以编译器会显示一条警告消息。