Swift String字符串版本更新特性

var str = "Hello, playground"
字符串,Swift最基本最常用的对象之一。
Swift的基本使用,增删改查我们就不说了。
基本字面量

let hello = "Hello Swift"
print("\(hello) 欢迎你")

多行字符串

let mutilStr = """
我是多行字符串
我这里定义多行
比如json定义
"""

Swift 5.0 String的新特性

增加Raw string 原始字符串功能。原始字符串中的引号和反斜杠会被原样输出.
比如我有这样一句话:"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#字母,"Bob"帽子上有两个##字母

\处理

使用\来处理,也是大多数语言处理方式,但是如果用来处理正则表达式就难看的。

var showStr = "\"Tom\" 和 \"Bob\"今天来我家,\"Tom\"帽子上有一个#,\"Bob\"帽子上有两个##"
print(showStr) //"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##

#处理

使用成对#将字符串包裹起来

var str2 = #""Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##"#
print(str2)//"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##

如果要插入变量值了? 使用\#()

var bob = "Bob"
var str2 = #""Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"\#(bob)"帽子上有两个##"#

##处理

##会完完全全原样输出字符串。
上面#处理有可能遇到 #" 就会成问题
比如我要显示:你好"Tom"#Bob"
如果使用#"你好"Tom"#Bob"# 就会出问题,相当于提前终止了#
在这里插入图片描述
所以此时就应该用##处理

var str3 = ##"你好"Tom"#Bob"##
print(str3) //你好"Tom"#Bob

你是不是在想,为啥不直接用##表示原样输出安全,我也这么想的,但是发现,##不支持里面添加变量

不信,你看

var bob = "Bob"
var str3 = ##"你好"Tom"#\#(bob)"##
print(str3) //你好"Tom"#\#(bob)  

所以,结论就是:

一般情况就是用#,即不用考虑转义字符,也可以\#(variable)使用变量字面值

想想用这个来定义正在表达式就爽

多行字符串

原始字符串和多行字符串完全兼容。

var bob = "Bob"
var str4 = #"""
一行
两行
\#(bob)
"""#
var str5 = ##"""
一行
两行
不可使用变量
"""##

参考:
Swift5.0新特性更新
老司机周报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值