Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 过滤';字符串';Swift中数组中元素的值_Arrays_Swift_String_Ubuntu_Filter - Fatal编程技术网

Arrays 过滤';字符串';Swift中数组中元素的值

Arrays 过滤';字符串';Swift中数组中元素的值,arrays,swift,string,ubuntu,filter,Arrays,Swift,String,Ubuntu,Filter,由于我刚刚开始我的冒险,通常是编程,特别是Swift,我无法解决过滤数组的问题 在我写这本书的过程中,我读到了一章,其中对数组进行了解释和分析 到目前为止,我在使用数组方面没有问题。以下是我学生书中的代码: var city = ["Boston", "London", "Chicago", "Atlanta"] let filtered = city.filter{$0.range(of:"o") != nil} 本应过滤带有字母“o”的城市,但编译时会显示此消息: error: value

由于我刚刚开始我的冒险,通常是编程,特别是Swift,我无法解决过滤数组的问题

在我写这本书的过程中,我读到了一章,其中对数组进行了解释和分析 到目前为止,我在使用数组方面没有问题。以下是我学生书中的代码:

var city = ["Boston", "London", "Chicago", "Atlanta"]
let filtered = city.filter{$0.range(of:"o") != nil}
本应过滤带有字母“o”的城市,但编译时会显示此消息:

error: value of type 'String' has no member 'range
那么这是否意味着我不能对字符串值使用
.range
? 那么代码是什么样子的呢? 我使用ubuntu作为我的操作系统

提前感谢。

您将收到此错误,因为不幸的是,
范围
在Linux中不可用。如果您可以使用
macOS
访问一台机器,这将起作用

正如@Hamish所说,我完全错了,您必须导入
Foundation
,才能在
String
上使用
range
contains
(即使您可以在
String.characters上调用
contains

将此行添加到代码的开头:

import Foundation

您是否导入了Foundation
?否,我正在处理一本书,因为这本书没有告诉我要这样做,所以我没有到书的这一点,我不需要导入任何东西,或者书中甚至没有关于导入任何东西的文字。请检查此项。您可以使用
包含
来检查
字符串
是否有
字符
让过滤=city.filter{$0.contains(“o”)}
不导入基础:
让filtered=city.filter{$0.characters.contains(“o”)}
@vacawama是的,这也有效。谢谢。我也在那个沙箱上尝试了OP的代码,但也出现了同样的错误,尽管它在Xcode 8.3/Swift 3.1中的一个操场上运行得很好,我正在使用的这本书是专门为linux编程的,所以可能是作者的错误吗?不,@Bodeue,@Hamish是对的,你必须导入
Foundation
,检查我的编辑。谢谢,它解决了它。现在我想知道为什么我要进口任何东西,这个“基础”是什么。我希望这将在以后的书中解释。