`
habout632
  • 浏览: 5705 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

第四节 字符串属于值类型

阅读更多

 

本文来自于疯子们的开源图书

<!--EndFragment-->

Swift的String类型是值类型。如果你创建一个新的String值,把它传递给一个函数或方法,或者被赋给一个常量或变量时,字符串值的拷贝的。在每种情况下,会创建一个当前字符串的副本,传递的或者是赋值的都是新新创建的副本,而不是原来的版本了。值类型在“结构体和枚举都是值类型”当中有详细的描述。

注意:

这个行为不同于在Cocoa的NSString。当你在Cocoa中创建了一个NSString实例,并且把它传给一个函数或方法或把它赋给一个变量,你总是传递或赋一个引用给相同的NSString.没有拷贝的字符串代替,除非特别要求。

Swift这种”默认拷贝字符串“的行为确保当一个方法或函数传递给你一个字符串值的时候,你拥有准确的String值,而不用管它是来自哪里的。你可以很确信的知道,传递的字符串不会被改变,除非你自己修改它。
在底层,Swift的编译器优化了字符串的使用,这样可以保证只有当必要的时候,才会进行值的拷贝。这就意味着当使用值类型这种方式处理字符串你的时候,总是能得到最好的性能。

分享到:
评论

相关推荐

    第八节 数据类型.docx

    4. 如果类型字符串中包含 REAL、FLOA 或 DOUB,那么该字段的亲缘类型是 REAL。 数据类型是 SQLite 中一个非常重要的概念,它决定了数据在数据库中的存储方式和格式。理解数据类型,可以帮助我们更好地使用 SQLite ...

    IDA数据分析简易教程

    4 第四节:字符和字符串的操作 5 第五节:数组 6 第六节:枚举类型 7 第七节:Bit-fields(位域) 8 第八节:结构体 9 第九节:结构变量和结构数组 10 第十节:联合体和结构体中的结构体 11 第十一节:可变的结构体 ...

    python学习第二节

    本节课程将深入探讨Python的基本知识,包括输入、输出、常量、变量、数据类型、类型转换、字符串格式化、运算符与表达式等。 2.1 输入、输出 在Python中,使用print()函数将数据打印到标准输出设备(屏幕)。...

    Go语言基础、进阶、提高课程第四节Go语言 常量1

    第四节 Go 语言 常量常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的

    PHP 第二节 数据类型之数值型

    PHP 支持8种基本的数据类型。 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) ...空字符串, 以及字符串 “0” 不包括任何元素的数组 不包括任

    第四节 基于报错的SQL注入-01

    字符型SQL注入是指在SQL语句中使用字符串值作为输入参数,例如:`select * from table where id = '用户输入id'`。 GET基于报错的SQL注入发现 GET基于报错的SQL注入发现是指通过在URL中修改对应的ID值来探测URL中...

    C Primer Plus第6版中文版勘误表教学提纲.pdf

    本节介绍了格式字符串的概念,强调了printf函数的使用在C语言程序中的重要性。printf函数是C语言程序中最常用的输出函数。 13. 字符串处理:strlen函数的使用 本节介绍了字符串处理的概念,强调了strlen函数的使用...

    C语言程序设计标准教程

    第四章: 数组 数 组  数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个...

    数据库系统基础教程第二章答案.doc

    例如,在 Accounts 关系中,我们定义了acctNo 为整数类型,type 为字符串类型,balance 为整数类型。 在 Customers 关系中,我们定义了firstName、lastName 和 idNo 为字符串类型,account 为整数类型。关系Schema ...

    powerbuilder

    参数printjobnumber:用PrintOpen()函数打开的打印作业号string:string类型,指定发送到打印机的字符串。在该字符串中,使用非打印字符的ASCII码值表示非打印字符zerochar:integer类型,可选项,指定在string参数...

    flex3的cookbook书籍完整版dpf(包含目录)

    第四章文本(121) 4.1节正确的设置一个文本对象的值 4.2节. 将TextInput绑定一个值 4.3节. 创建一个具有文字提示的文本输入框 4.4节. 创建一个合适的编辑器 4.5节. 确定用户电脑上安装的所有字体 4.6节. 创建一个...

    第十节 Sqlmap注入参数1-01

    在Sqlmap 需要在有效负载中使用(单引号分隔)字符串值(例如,选择'foobar')时,这些值将自动转义(例如,选择CHAR(102)+CHAR(111)+CHAR(111)+CHAR(98)+CHAR(97)+CHAR(114))。这样做的原因有两个:混淆有效负载...

    MYSQL安装包官方试用版

    字符串类型的存储需求 列类型 存储需求 CHAR(M) M个字节,0 VARCHAR(M) L+1个字节,其中L 且0 (参见下面的注释) BINARY(M) M个字节,0 VARBINARY(M) L+1个字节,其中L 且0 TINYBLOB, TINYTEXT L...

    C语言第二章习题.doc

    本节习题涵盖了C语言第二章的主要知识点,包括基本结构、算法设计、变量赋值、赋值语句、逻辑运算符、字符串操作等。以下是对每道习题的详细解释: 1. 错误选项是 A),因为结构化程序设计语言可以解决复杂问题,而...

    数据库设计原则.pdf

    char类型查询速度更快,但 会浪费存储空间 字符串char和varchar的区别在于两点:1,存储长度不同,char类型存储固定长度,varchar类型是可变长度,是在存储的内容上加⼀个字 节。⽐如 char(5) varchar(5) ' ', 内存...

    单片机C语言开发详解 Keil C单片机开发环境PPT课件.pptx

    可以使用所有C51编译器支持的数据类型定义一个变量,而常量的数据类型只限于整型、浮点型、字符型、字符串型和位标量。 5. 函数 函数是C语言程序的基本组成部分。一个好的C语言程序应该把一个大问题划分成若干子...

    Excel_VBA程序设计.pdf

    字符串函数 6 四.转换函数 6 五.时间函数 7 第十三节 文件操作 7 文件 7 删除 7 打开 7 读入 8 写入 8 关闭 8 其他文件函数 8 二、Visual BASIC程序设计网络教学 8 第一课 VBA是什么 8 1.1 VBA是什么 8 1.2 EXCEL...

    EXCEL集成工具箱V6.0

    可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 【隔行插入】 在当前工作表中允许从M行到N行,隔X行插入Y行,并允许是否需复制标题Z行。 【制作工资条】 瞬间将...

    C语言教程-C语言基础.pptx

    本节课程涵盖了C语言的基础知识,包括进位计数制、数值型数据的编码、非数值型数据的编码、数据类型、常量等。 一、进位计数制 在计算机科学中,进位计数制是指用不同的数字系统来表示数字。常见的进位计数制有十...

    EXCEL集成工具箱V8.0完整增强版(精简)

    可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 【隔行插入】 在当前工作表中允许从M行到N行,隔X行插入Y行,并允许是否需复制标题Z行。 【制作工资条】 瞬间将...

Global site tag (gtag.js) - Google Analytics