首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是元组和列表?

什么是元组和列表?
EN

Stack Overflow用户
提问于 2016-10-12 00:25:11
回答 2查看 156关注 0票数 0

我在看斯坦福大学用SWIFT-3开发的iOS 9应用程序。youtube上更多的Swift和Foundation在谈论元组和列表,我不知道它们是什么,即使我在网上搜索,我仍然不知道它们是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-12 00:59:13

Turple基本上是一组变量,而list是同一类型的几个值的索引。

Tuple

郁金香真的很酷(我想)。它可以让你把一堆变量放在一起,然后给它们取一个名字,否则就什么都没有了。

例如,假设你有二次公式。将这些价值观分组是有意义的:

代码语言:javascript
复制
var quadraticFunction: (a: Int, b: Int, c: Int, plus: Double, minus: Double)

这样,您甚至可以返回元组。为了进一步了解这一点,您可能希望创建一个函数来执行二次公式,方法是取1个数字,并为b和c分别添加1和2。

代码语言:javascript
复制
    func performQuadraticFormula(startValue: Int) -> (a: Int, b: Int, c: Int, plus: Double, minus: Double) {
    var returnQuadratic: (a: Int, b: Int, c: Int, plus: Double, minus: Double)

    returnQuadratic.a = startValue
    returnQuadratic.b = startValue + 1
    returnQuadratic.c = startValue + 2
    returnQuadratic.plus = /* lots of math for this part */
    returnQuadratic.minus = /* lots of math for this part */

    return returnQuadratic
}

因此,现在您可以使用这个输出,并将其存储起来供以后使用:

代码语言:javascript
复制
let function = performQuadraticFormula(startValue: 10)
print(function.a)
// you can do whatever you want with this output now

因此,您可以为这些值分配名称,存储它们供以后使用,分配它们,并在函数中返回它们。另外,您不需要为每个值都有一个名称,在这种情况下,它应该是这样的:

代码语言:javascript
复制
function.0

列出

我想我可以看出你是如何很容易被一个列表和一个元组混淆的。两者都可以用它的索引引用(tuple.0,list)。但名单是很不一样的。首先,不能为每个值指定名称。真正的区别在于,一个元组是用它的值预先定义的,而一个列表可以轻松地展开和删除项目。

例如,可以将几个考试成绩存储在列表中。

代码语言:javascript
复制
var tests = [100, 100, 90, 78, 100, 10]

然后,下周再添加一个新的,它将自动展开:

代码语言:javascript
复制
tests.append(99.8)

元组migght只有3个值,仅此而已;您必须返回并添加一个新变量才能添加新值。对于一个列表,您有一堆相同的类型,可以添加任何您想要的。为了得到一个,你可以这样做:

代码语言:javascript
复制
let firstTest = tests[0]

另外,list (Array)还有许多函数,比如.map()、filter()等等。元组没有这些功能。

将一组统计数据或数据的列表和一个元组看作是将一组变量放在一行上的一种方法。

票数 2
EN

Stack Overflow用户

发布于 2016-10-12 00:35:14

元组是一组由0或多个值组成的组,表示为一个值。

例如,("John", "Smith")保存一个人的名字和姓氏。可以使用点(.)访问内部值。表示法,后面跟着值的索引:

代码语言:javascript
复制
var person = ("John", "Smith")

var firstName = person.0 // John
var lastName = person.1 // Smith  

数组文字是以值的列表形式编写的,由逗号分隔,周围是一对方括号:

下面的示例创建一个名为shoppingList的数组来存储字符串值:

代码语言:javascript
复制
var shoppingList: [String] = ["Eggs", "Milk"]
// shoppingList has been initialized with two initial items  
var firstItem = shoppingList[0]
// firstItem is equal to "Eggs"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39988729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档