美文网首页
Swift修行之路-1

Swift修行之路-1

作者: 西门淋雨 | 来源:发表于2018-08-23 17:53 被阅读13次

1.swift 空格不像c、c++、java那样完全忽略,swift对空格有一定的要求。运算符不能直接跟在变量或者常量后面。

//下面的写法会报错
let a =3 + 2
//正确的写法-推荐
let a = 3 + 2
//下面的写法也可以-不推荐
let a = 3+2

2.控制台输出

let a = 3 + 2
//直接输出变量,需要加\并用()包含
print("\(a)")
print("123")

3. let 用于定义常量,定义完后不能修改 ,var 用于定义变量,可以修改,swift可以自动识别属性类别。

4.数据类型:

Int:长度和平台有关系
32位平台上Int和Int32长度相同
64位平台上Int和Int64长度相同

UInt:无符号的UInt
32位平台上Int和UInt32长度相同
64位平台上Int和UInt64长度相同

整数类型需要注意以下几点:
在 32 位系统上, Int 和 Int32 长度相同。
在 64 位系统上, Int 和 Int64 长度相同。
在 32 位系统上, UInt 和 UInt32 长度相同。
在 64 位系统上, UInt 和 UInt64 长度相同。
Int8, Int16, Int32, Int64 分别表示 8 位, 16 位, 32 位, 和 64 位的有符号整数形式。
UInt8, UInt16, UInt32, UInt64 分别表示 8 位, 16 位, 32 位 和 64 位的无符号整数形式。

浮点数:
Float:32位浮点数
Double:64位浮点数
Double精度很高。

布尔值:Bool,值为true和false

字符串:String,如:"hello"

字符:Character,指的是单个字母,如:"h"

可选类型:Optional

类型别名,用typealias定义,如:

        typealias myInt = Int
        var kk:myInt = 10
        kk = 20
        print("\(kk)")

类型推断

       //类型推断为Int
       var varA = 10
       //类型推断为Double
       var varB = 3.1415
       //类型推断为Double
       var varC = 3 + 3.14

5.变量

变量名可以由字母,数字和下划线组成。
变量名需要以字母或下划线开始。
Swift 是一个区分大小写的语言,所以字母大写与小写是不一样的。
变量名也可以使用简单的 Unicode 字符,如下实例:

var _var = "Hello, Swift!"
print(_var)
var 你好 = "你好"
print(你好)

6.可选类型

var myStr = "dhjshdj"
myStr = "45454"
print("\(myStr)")
               
 let myStr2:String!
 myStr2 = "+++"
 print("\(myStr2!)")
 print(myStr2 + myStr)
        
  var myStr3:String?
  myStr3 = "45454"
  print("\(myStr3!)")
        
  //可选绑定
  var mylkk:String?
  mylkk = "sdhjhsjdh"
  if let ppp = mylkk {
        print("字符串为=\(ppp)")
  }else{
        print("字符串为无值")
  }

7.for循环

        for index in 1...5 {
            print("\(index)")
        }
        
        let someInts:[Int] = [10,20,30]
        for index2 in someInts{
            print("\(index2)")
        }

8.字符串

        let sa = "sdksjdk"
        let sa2 = String("shjdhjshdj")
        let sa3 = String.init("shjdhjshdj")
        print("sa=\(sa)\n sa2=\(sa2)\n sa3=\(sa3)")
        if sa.isEmpty {
            print("非空")
        }else{
            print("为空")
        }
        //字符串长度
        print("字符串长度=\(sa.count)")
        //字符串是否相等
        if sa == sa2 {
            print("==")
        }else{
            print("!==")
        }
        if sa.hasPrefix("sd") {
            print("含有sd前缀")
        }else{
            print("不含有sd前缀")
        }
        if sa.hasSuffix("dk") {
            print("含有dk后缀")
        }else{
            print("不含有dk后缀")
        }
        //字符串转化为整形
        let intStr:String = "1000"
        let mmInt:Int? = Int(intStr)
        print("mmint=\(String(describing: mmInt))")
        //遍历字符串
        for ch in sa {
            print(ch)
        }

9.数组

        //数组
        var someArr = [String]()
        var someArr2 = [Int](repeating: 0, count: 5)
        var someArr3 = ["se","we","ewqw"]
        var someArr4:[String] = ["se","we","ewqw"]
        //取值
        var someVar = someArr4[0]
        //数组拼接
        someArr4.append("55")
        someArr4 += ["4444"]
        //数组修改
        someArr4[0] = "66"
        //遍历数组
        for somePa in someArr4 {
            print(somePa)
        }
        for (index,item) in someArr4.enumerated() {
            print("index=\(index)的值=\(item)\n")
        }
        //合并数组
        var someArr5 = someArr3 + someArr4
        for (index,item) in someArr5.enumerated() {
            print("index2=\(index)的值=\(item)\n")
        }
        //数组的元素个数
        print("someArr5的元素个数=\(someArr5.count)")
        //数组是否为空
        if someArr5.isEmpty {
            print("数组元素为空")
        }else{
            print("数组元素不为空")
        }

10.字典

        //空字典
        var someDic = [Int:String]()
        //创建实例字典
        var someDic2:[Int:String] = [1:"1",2:"2",3:"3"]
        //访问字典
        var someValue = someDic2[1]
        //修改字典
        var oldValue = someDic2.updateValue("4", forKey: 1)
        //移除key-value对
        var removeValue = someDic2.removeValue(forKey: 3)
        var someDic3:[Int:String] = [1:"12",2:"34",3:"67"]
        someDic3[2] = nil
        //遍历字典1
        for (key,value) in someDic2 {
            print("key=\(key),value=\(value)")
        }
        //遍历字典-2
        for (key,value) in someDic2.enumerated() {
            print("key2=\(key),value2=\(value)")
        }
        //转化为数组
        var keysArr = [Int](someDic3.keys)
        var valuesArr = [String](someDic3.values)
        //有多少键值对
        var dicCount = someDic3.count
        //isEmpty
        var empty = someDic3.isEmpty

相关文章

网友评论

      本文标题:Swift修行之路-1

      本文链接:https://www.haomeiwen.com/subject/mmtmiftx.html