• swift-基础


    print区别

    print(1,2,3, separator: "-", terminator: "\n")//表示用-来分割//1-2-3 //terminator表示用\n作为终止符
    var a = "a",b= "b"
    print(a + b) //ab
    print("\(a)前面是a变量\(b)后面是b变量")
    
    • 1
    • 2
    • 3
    • 4

    变量

    var name = "Bob"
    type(of: x)//获取x的类型
    name.description//Bob 返回变量值
    name.debugDescription//"Bob" 调制值
    name.hashValue//唯一标识变量的ID
    name == "Bob"//true 判断是否相等
    var c:Float = 3.4 //强制喂float
    var c = Float(3.4)
    var d = 3.4 //double
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    字符串

    var text = String()//表示空串
    var a = "abcdefg"
    var b = "b"
    
    var text1 = """
    a
    b
    c
    """
    //a
    //b
    //c
    a +=b//ab
    
    a[a.endIndex]//这个是不存在的必须访问前一位
    a[a.index(1)]//b
    a[a.index(before:1)]//a 前一个
    a[a.index(after:1)]//c 后一个
    a[a.index(1,offsetBy:2)]//d 后两个
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    循环

    for index in name.indices{
        print(name[index])
    }
    
    for x in 1...10
    {
    	print(x)
    }//12345678910
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    转换

    var z = Int("3")//实际上Int("3")返回的是Int?,即可选型(Optional),因为转换可能成功也可能失败
    print(z)//Optional(3)
    
    var z = Int("3") ?? 0//表示如果能转换就转换成3 不能就为0
    print(z)//3
    
    print(z!)//3 强制解包 如果转换失败,强制解包会导致运行时错误 但是测试
    
    if let intValue = Int("3") {
        print(intValue)
    } else {
        print("转换失败")
    }
    
    var x = Int("x")
    print(x)//nil 并不会崩溃
    print(x!)//会导致crash
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    空合运算符

    var x:String? = "a"
    
    • 1

    解16进制

    var p = Int("ff", radix:16) ?? 0//表示按16进制解
    
    • 1

    数组

    var a1:Array<int> = [a,b,c]
    var a2:[int] = [1,2,3]
    var a3 = Array<Int>()
    var a4 = Array<Int>([1,2])
    var a5 = Array<int>(1...3)
    
    for (index, value) in a1.enumerated(){
    	print(index,value,sperator: ":")
    }
    //0:a 1:b 2:c 
    
    a1.remove(at:1)//删除b
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    查找

    var a = [1,2,3,4,5]
    var b = a.first(where: {
        $0 > 2
    })//表示从a中找到第一个大于2的
    print(b ?? "没有")
    
    var a = [1,2,3,4,5]
    var b = a.first(where: {
        n in
        n > 2
    })
    print(b ?? "没有")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    要么用$0要么就需要自己命名一个 然后加 in

    变换

    var a = ["a","b","c","d"]
    var b = a.map(
        {
            $0.uppercased()
        })//也就是让数组每一个元素执行闭包里面的操作
    
    • 1
    • 2
    • 3
    • 4
    • 5

    分割

    var a = "a b c d e f g"
    var b = a.split(separator: " ")
    print(b ?? [])
    
    //自定义分割
    var a = "abcdefg"
    var b = a.split(whereSeparator: {
        $0 == "c" || $0 == "e"
    })//["ab", "d", "fg"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    let和var的区别

    let a = 3//a是一个常量
    var a = 3//a是一个变量

    contentsOf

    一般后面跟多个数据
    var a = “a”
    a.append(contentsOf: [“bbb”, “ccc”])
    用于读取文件内容或者数据的一种方法

    if let filePath = Bundle.main.path(forResource: "example", ofType: "txt") {
        do {
            let content = try String(contentsOf: URL(fileURLWithPath: filePath), encoding: .utf8)
            print(content)
        } catch {
            print("读取文件失败: \(error)")
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    leetcode面试经典150题——29 三数之和
    Linux Docker下载镜像更改默认存储位置/usr/lib/docker
    【免费】Python数据分析最新87个项目案例,包含说明文档+数据+源码资料合集分享
    C语言学习之路(基础篇)—— 文件操作(下)
    【Linux】线程池 | 自旋锁 | 读写锁
    CentOS7安装Weblogic教程
    设计模式01———简单工厂模式 c#
    压缩pdf在线工具,压缩pdf大小的软件
    xml mysql 强制走区分大小写查询
    每日一题 2651. 计算列车到站时间
  • 原文地址:https://blog.csdn.net/qq_43535469/article/details/134562610