热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么我需要在swift中的数组声明结尾处使用大括号?

如何解决《为什么我需要在swift中的数组声明结尾处使用大括号?》经验,为你挑选了1个好方法。

我已经谷歌搜索了一段时间,每个教程都教我创建一个数组,你只需要做以下事情:

var persOns= [String]

但我正在从快速代码转向iOS开发学习材料,现在到处都是

var persOns= [String]()

为什么我们最后需要那些括号?



1> mc01..:

看起来你混淆了两个概念:变量声明和变量赋值.

要在Swift中声明一个空数组,您必须明确说明数组可以容纳的类型.你可以用长手定义来做到这一点:

var persons: Array

或简写语法(首选):

var persons: [String]

注意使用冒号":"而不是等于"=".

这两个都在说"我宣称存在一个名为'people'的变量(不是常量),它将是一个充满字符串的可变数组.但是现在它还是未定义的."

在Obj-C中,你可以将任何类型的Object放入NSArray中,这意味着你无法确定你将从中获得什么.以这种方式声明Array内容是Swift的Type安全功能之一.您可以确信persons只会包含String实例.

分配一个值的变量,这意味着它不只是有一个定义,但也有在内存中分配给它一个有效的对象,你必须真正初始化数组:

var persOns= [String]() 

这实际上是初始化将保存某个Type的空数组的简写方法,而不将任何参数传递给init:方法.在此之后,persons实际上有一个值,这是一个完全空的数组,只允许包含字符串.

或者,Swift的Array Type有一个第二个初始化器,可以让你传递参数:

init(count: Int, repeatedValue: T)

您可以使用它来创建一个具有设定长度和初始值的数组:

let immutableBobsArray = Array(count: 3, repeatedValue: "Bob")

println(\(immutableBobsArray))  \\ ["Bob", "Bob", "Bob"]

请参阅Apple的Swift编程指南中的"集合类型",以及Swift标准库中的Array条目


推荐阅读
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本文介绍如何在Spring Boot项目中集成Redis,并通过具体案例展示其配置和使用方法。包括添加依赖、配置连接信息、自定义序列化方式以及实现仓储接口。 ... [详细]
  • 本文介绍了如何在 Node.js 中使用 `setDefaultEncoding` 方法为可写流设置默认编码,并提供了详细的语法说明和示例代码。 ... [详细]
  • 探讨如何修复Visual Studio Code中JavaScript的智能感知和自动完成功能在特定场景下无法正常工作的问题,包括配置检查、语言模式选择以及类型注释的使用。 ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • 探讨在PHP开发中,如何选择使用Cookie或数据库来优化网站性能,特别是在处理用户保存的搜索结果时。 ... [详细]
  • 本文探讨了在Django项目中,如何在对象详情页面添加前后导航链接,以提升用户体验。文章详细描述了遇到的问题及解决方案。 ... [详细]
author-avatar
手机用户2702932415_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有