当前位置: 首页 > 面试题库 >

在Swift中,数组[String]切片返回类型似乎不是[String]

卫宁
2023-03-14
问题内容

我正在切片字符串数组并将其设置为[String]变量,但是类型检查器在抱怨。它可能是编译器错误吗?

var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: [String] = tags[1..<3]

屏幕截图


问题答案:

用范围下标数组不会返回数组,而是一个切片。不过,您可以从该切片创建阵列。

var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: Slice<String> = tags[1..<3]
var someTagsArray: [String] = Array(someTags)


 类似资料:
  • 问题内容: 我正在尝试进行此扩展: 但是我得到了编译错误: 错误:无法将类型’UIViewController’的返回表达式转换为类型’Self’ 可能吗?我也想做到 问题答案: 与在Swift的类扩展函数中使用’self’类似,您可以定义一个通用的辅助方法,该方法可以从调用上下文中推断出self的类型: 然后 进行编译,并将类型推断为。 Swift 3 更新 : 另一种可能的解决方案,使用:

  • 我有一个函数从服务器获取一个文件并解析了该文件,我正在使用一个具有如下完成处理程序的函数来获取该文件 但是,当我尝试使用该函数时 我得到无法将类型“()”的返回表达式转换为返回类型“String”的错误。 知道我做错了什么吗?

  • 我发现自己对和数据类型感到困惑。 从Go docs中,数组描述如下: Go中的数组工作方式与C中的数组工作方式有很大区别, 数组是值。将一个数组指定给另一个数组将复制所有元素 特别是,如果将数组传递给函数,它将接收数组的副本,而不是指向该数组的指针 数组的大小是其类型的一部分。[10]int和[20]int类型是不同的 功能: 与C系列中的所有语言一样,Go中的所有内容都是通过值传递的。也就是说,

  • 问题内容: Swift中的切片是什么,它与数组有何不同? 从文档中,下标(Range)的类型签名为: 为什么不返回另一个而不是一个? 看起来我可以将切片与数组连接起来: 但这会产生错误: 无法找到接受提供的参数的“下标”的重载 什么是切片? 问题答案: 切片指向数组。当数组已经存在并且切片只能描述其所需部分时,再也没有必要制作另一个数组。 加法会导致隐式强制,因此可以正常工作。为了使您的作业正常进

  • 问题内容: 如果返回作为函数或方法的局部变量的数组的切片会怎样?Go是否将数组数据复制到使用创建的切片中?容量将匹配切片大小还是阵列大小? 问题答案: 这在Spec:Slice expressions中 有详细说明。 不会复制该数组,但slice表达式的结果将是引用该数组的slice。在Go中,从函数或方法返回局部变量或它们的地址是绝对安全的,Go编译器执行逸出分析以确定值是否可以逸出该函数,以及

  • 代码段用于获取从文本文件中提取的一行文本,将其分离为单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决这个问题。 使用字符串,如: 带分隔符的StringTokenizer对象返回前四个标记作为正确的字符串,但其余四个标记为null。 有趣的是,另一个字符串: “Gnollnonegeralany222taunttaunt” 鸡肉没有野兽