ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Swift学习笔记

2022-06-13 16:31:44  阅读:165  来源: 互联网

标签:String Swift 笔记 学习 类型 let print 合集


基本运算符

let (x, y) = (1, 2)

//当a为负数
print(-9 % 4) //-1
//当b为负数时它的正负号被忽略掉了。这意味着 a % b 与 a % -b 能够获得相同的答案。
print("result is:", 9 % -4) //1
print(-9 % -4) //-1

b = -3
//一元减号运算符( - )直接在要进行操作的值前边放置,不加任何空格。
var c = -b
//尽管一元加号运算符实际上什么也不做,你还是可以对正数使用它来让你的代码对一元减号运算符来说显得更加对称。
c = +b

Swift 同时也提供两个等价运算符( === 和 !== ),可以用它们判断两个对象的引用是否相同。

可以比较拥有同样数量值的元组,只要元组中的每个值都是可比较的。比如说, Int 和 String 都可以用来比较大小,也就是说 (Int,String) 类型的元组就可以比较。一般来说, Bool 不能比较,这意味着包含布尔值的元组不能用来比较大小。

(1, "zebra") < (2, "apple")   // true because 1 is less than 2
(3, "apple") < (3, "bird")    // true because 3 is equal to 3, and "apple" is less than "bird"
(4, "dog") == (4, "dog")      // true because 4 is equal to 4, and "dog" is equal to "dog"

合并空值运算符 ( a ?? b )如果可选项 a 有值则展开,如果没有值,是 nil ,则返回默认值 b 。表达式 a 必须是一个可选类型。表达式 b 必须与 a 的储存类型相同。

合并空值运算符是下边代码的缩写:

a != nil ? a! : b //equals: a ?? b

三元条件运算符强制展开( a! )储存在 a 中的值,如果 a 不是 nil 的话,否则就返回 b 的值。

Swift 包含了两个 区间运算符:

闭区间运算符( a...b )定义了从 a 到 b 的一组范围,并且包含 a 和 b 。 a 的值不能大于 b 。

for index in 1...5 {
    print("index is \(index)")
}

半开区间运算符( a..<b )定义了从 a 到 b 但不包括 b 的区间。

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
    print("index is \(i)")
}

单侧区间:

for name in names[2...] {
    print(name)
}

for name in names[1...3] {
    print(name)
}

for name in names[..<2] {
    print(name)
}

let range = ...5
range.contains(7)   // false
range.contains(4)   // true
range.contains(-1)  // true

逻辑运算符:

let allowedEntry = false
if !allowedEntry {
    print("ACCESS DENIED")
}

使用的是短路计算!(前面的a ?? b也是,如果a是非空的就不会考虑b)

如果第一个值是 false ,那么第二个值就会被忽略掉了,因为它已经无法让整个表达式再成为 true 。

a && b || c || d 等价于 (a && b) || c || d

字符串和字符

Swift 的 String类型桥接到了基础库中的 NSString类。Foundation 同时也扩展了所有 NSString 定义的方法给 String 。也就是说,如果你导入 Foundation ,就可以在 String 中访问所有的 NSString 方法,无需转换格式

更多在 Foundation 和 Cocoa 框架中使用 String的内容,参见 与 Cocoa 和 Objective-C 一起使用 Swift (Swift 4)(官网链接)。

字符串字面量是被双引号( ")包裹的固定顺序文本字符。

使用字符串字面量作为常量或者变量的初始值:

let someString = "Some string literal value"

多行字符串字面量是用三个双引号引起来的一系列字符:

let quotation = """
I said, "aaaaa",
so emmm

you know.
"""
print(quotation)

当你的代码中在多行字符串字面量里包含了换行,那个换行符同样会成为字符串里的值。如果你想要使用换行符来让你的代码易读,却不想让换行符成为字符串的值,那就在那些行的末尾使用反斜杠( \ ):

let quotation = """
I said, "aaaaa",\
so emmm \
\
you know.
"""
print(quotation) //I said, "aaaaa",so emmm you know.

如果在某行的空格超过了结束的双引号( """ ),那么这些空格会被包含。
image

字符串字面量能包含以下特殊字符:

  • 转义特殊字符 \0 (空字符), \\ (反斜杠), \t (水平制表符),\n (换行符), \r (回车符), \" (双引号) 以及 \' (单引号);
  • 任意的 Unicode 标量,写作 \u{n},里边的 n是一个 1-8 个与合法 Unicode 码位相等的16进制数字。
let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"
// "Imagination is more important than knowledge" - Einstein
let dollarSign = "\u{24}" // $, Unicode scalar U+0024
let blackHeart = "\u{2665}" // ♥, Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // 

标签:String,Swift,笔记,学习,类型,let,print,合集
来源: https://www.cnblogs.com/preccrep/p/16370493.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有