Swift编程基础(一)

课程来源于:Swift编程基础

1. 数据类型, 变量常量, 类型判断, 拼接字符串

1.1 查看Swift的版本

终端输入xcrun swift -version

1.2 let来定义常量

1.3 拼接字符串

"\()" 括号中填入变量名

print(str + "\(int)")

2 类型别名, 类型转换

2.1 类型别名

typealias Dog = Int

var a:Int = 11

var b:Dog = 22

b = a

print(b)
typealias S = String

var c:String = "ccc"

var d:S = "ddd"

d = c

print(d)

2.2 类型转换

var e = 10

print("值等于 = " + String(e))

print("值等于 = " + String(1.5))

print("值等于 = " + String(true))

let f = false

print("值等于 = " + String(f))

nil等于null

var g = "1aaa"

var h = "10"

var i = Double(g) ?? 0//可转就是该值不可转就是??后的值

var j = Double(h) ?? 0

//print(Int(g)) 不可以转

print(Int(h))

print(i)

print(j)

3. 可选类型和解析值

var a:String? = "Hello, playground"

print(a)

print(a!) //确定该变量的值存在就需要加!(解析值)

var c:Int? = 10

if(c == nil){
    print("没有")
}else{
    print("值为 = " + "\(c!)")
    
    print("值为 = " + String(c!))
}

4. 元组类型

var a = (1, "a", true, 1.5)

var b:(Int, String) = (11, "bbb")

var c = (name1:1, name2:2)

var d:(name1:Int, name2:String) =  (11, "ddd")
print(a)

print(b)

print(c)
c.name1 = 22
print(c.name1)

print(d)

元组是值传递.

let (name1, name2) = ("swift", 1.5)

print(name1)
print(name2)

var (name3, _, name4) = (100, true, false)// _表示省略该元值

print(name3)
print(name4)

5. 基础运算符

没有i++i--

6. if语句, 可选类型绑定, 隐式展开

6.1 可选类型绑定

var a:Int? = nil

if let value = a//可选类型绑定
{
    print("值为: \(value)")
}
else
{
    print("没有值")
}

6.2 隐式展开

var b:Int! = 100  //当可选项类型确定时,用隐式展开
var c:Int = b

print(c)

7. switch case, fallthrough穿透效果

7.1 fallthrough

var a = 10

switch a {
    case 5:
        print("情况0")
    case 10:
        print("情况1")
        fallthrough  //继续执行下面代码
    case 20:
        print("情况2")
    default:
        print("没有匹配")
}
情况1
情况2

8. 区间运算符, for in 循环, continue和break

8.1 区间运算符

var a = 1...4
print("范围 = \(a)")

var b = 1..<4
print("范围 = \(b)")

var c = -3...4
print("范围 = \(c)")

var d = (2.5) ... 4
print("范围 = \(d)")

var e = 1...
print("范围 = \(e)")

8.2 for in

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

print("stride on")
//stride to不包含结尾
for index in stride(from: 0, to: 10, by: 2) {
    print(index)
}

print("stride through")
//stride through包含结尾
for index in stride(from: 0, through: 10, by: 2) {
    print(index)
}

9.while和repeat while

repeat while就相当于是do while

10. String基本操作

10的中操作所使用的字符串都是var str = "ABCDEF"

10.1 截取字符串

var str = "ABCDEF"

print("字符串长度为: " + "\(str.count)")

str.startIndex
str.endIndex

print("字符串第一个字符: " + String(str[str.startIndex]))

print("字符串最后一个字符: " + String(str[str.index(before: str.endIndex)]))

print("从开始的位置算,3位置的字符: " + String(str[str.index(str.startIndex, offsetBy: 3)]))

var a = str.index(str.startIndex, offsetBy: 2)

var b = str.index(str.startIndex, offsetBy: 4)

print("字符串第2-4位字符: " + String(str[a...b]))

var e = str.firstIndex(of: "E") ?? str.endIndex

print("字符串第0到E之间的字符: " + String(str[str.startIndex...e]))

print("字符串索引前4的字符:" + String(str.prefix(4)))

let f = str.index(str.endIndex, offsetBy: -2)

print("字符串最后两位字符: " + String(str[f..<str.endIndex]))
字符串长度为: 6
字符串第一个字符: A
字符串最后一个字符: F
从开始的位置算,3位置的字符: D
字符串第2-4位字符: CDE
字符串第0到E之间的字符: ABCDE
字符串索引前4的字符:ABCD
字符串最后两位字符: EF

10.2 包含其中

print("包含是否含有该完整的字符串: " + String(str.contains("BC")))
print("包含是否含有该完整的字符串2: " + String(str.contains("Bc")))

print("包含是否含有该字符串: " + String(str.contains(where: String.contains("Bc"))))
print("包含是否含有该字符串2: " + String(str.contains(where: String.contains("bc"))))
包含是否含有该完整的字符串: true
包含是否含有该完整的字符串2: false
包含是否含有该字符串: true
包含是否含有该字符串2: false

10.3 判断前后缀

print("判断字符串是否包含某字符串前缀: " + String(str.hasPrefix("AB")))
print("判断字符串是否包含某字符串前缀2: " + String(str.hasPrefix("Ab")))

print("判断字符串是否包含某字符串前缀: " + String(str.hasSuffix("EF")))
print("判断字符串是否包含某字符串前缀2: " + String(str.hasSuffix("Ef")))
判断字符串是否包含某字符串前缀: true
判断字符串是否包含某字符串前缀2: false
判断字符串是否包含某字符串前缀: true
判断字符串是否包含某字符串前缀2: false

10.4 追加

str.append("aaaaaa")
print("字符串追加: " + String(str))
字符串追加: ABCDEFaaaaaa

10.5 插入

str.insert(contentsOf: "hello", at: str.index(str.startIndex, offsetBy: 3))

print("在3位置插入hello字符串: " + String(str))
在3位置插入hello字符串: ABChelloDEF

10.6 替换

let index1 = str.index(str.startIndex, offsetBy: 1)

let index2 = str.index(str.startIndex, offsetBy: 3)

let range = index1...index2

str.replaceSubrange(range, with: "123123")

print("替换1到3位置的字符串: " + String(str))
替换1到3位置的字符串: A123123EF
var new_value = str.replacingOccurrences(of: "BC", with: "888") //返回一个新的值

print("替换BC位置的字符串: " + String(new_value))
替换BC位置的字符串: A888DEF

10.7 删除

var a = str.index(str.startIndex, offsetBy: 1)

var b = str.index(str.startIndex, offsetBy: 3)

var range = a...b

str.removeSubrange(range)

print("删除1到3位置的字符串: " + String(str))
删除1到3位置的字符串: AEF

10.8 遍历字符串

  • 直接遍历
for item in str {
    print(item)
}
  • 索引遍历
for index in 0..<str.count {
    print(str[str.index(str.startIndex, offsetBy: index)])
}

for index in (0..<str.count).reversed() {
    print(str[str.index(str.startIndex, offsetBy: index)])
}

10.9 多行文本

var value = """
            hello
                world
            """

print(value)
hello
    world

10.10 转义

var value = #""Hello #@$#%&^&*()(&&^world""#

print(value)
"Hello #@$#%&^&*()(&&^world"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值