Swift修行之路-1

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容